`
jiangzhongwei_66
  • 浏览: 6308 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

TimeStamp1

阅读更多
package org.apache.commons.net.ntp;

import java.io.Serializable;
import java.lang.ref.SoftReference;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;

public class TimeStamp
    implements Serializable, Comparable
{

    public TimeStamp(long ntpTime)
    {
        this.ntpTime = ntpTime;
    }

    public TimeStamp(String s)
        throws NumberFormatException
    {
        ntpTime = decodeNtpHexString(s);
    }

    public TimeStamp(Date d)
    {
        ntpTime = d != null ? toNtpTime(d.getTime()) : 0L;
    }

    public long ntpValue()
    {
        return ntpTime;
    }

    public long getSeconds()
    {
        return ntpTime >>> 32 & 4294967295L;
    }

    public long getFraction()
    {
        return ntpTime & 4294967295L;
    }

    public long getTime()
    {
        return getTime(ntpTime);
    }

    public Date getDate()
    {
        long time = getTime(ntpTime);
        return new Date(time);
    }

    public static long getTime(long ntpTimeValue)
    {
        long seconds = ntpTimeValue >>> 32 & 4294967295L;
        long fraction = ntpTimeValue & 4294967295L;
        fraction = Math.round((1000D * (double)fraction) / 4294967296D);
        long msb = seconds & 2147483648L;
        if(msb == 0L)
            return 2085978496000L + seconds * 1000L + fraction;
        else
            return -2208988800000L + seconds * 1000L + fraction;
    }

    public static TimeStamp getNtpTime(long date)
    {
        return new TimeStamp(toNtpTime(date));
    }

    public static TimeStamp getCurrentTime()
    {
        return getNtpTime(System.currentTimeMillis());
    }

    protected static long decodeNtpHexString(String s)
        throws NumberFormatException
    {
        if(s == null)
            throw new NumberFormatException("null");
        int ind = s.indexOf('.');
        if(ind == -1)
        {
            if(s.length() == 0)
                return 0L;
            else
                return Long.parseLong(s, 16) << 32;
        } else
        {
            return Long.parseLong(s.substring(0, ind), 16) << 32 | Long.parseLong(s.substring(ind + 1), 16);
        }
    }
分享到:
评论

相关推荐

    MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数

    explicit_defaults_for_timestamp = 1 # 启用,表示明确的默认值 # 或 explicit_defaults_for_timestamp = 0 # 禁用,恢复旧的行为 ``` 然后重启MySQL服务以应用更改。 总结来说,理解`TIMESTAMP`和`explicit_...

    Spark Sql中时间字段少8个小时问题解决

    SELECT journal_id, exh_id, exhibit_desc, exhibit_scope, hall_id, journal_sd, journal_ed FROM test.app_exhibition_test_timestamp1; ``` #### 问题分析 根据问题描述,可以推断出以下几点: - 源表中的...

    oracle中TIMESTAMP与DATE比较

    在Oracle数据库中,`TIMESTAMP`与`DATE`两种数据类型是用于存储日期和时间信息的关键组成部分,但它们之间存在显著的区别,特别是在处理时间和精度方面。本文将深入探讨这两种数据类型的特点,以及如何在实际应用中...

    ICMP timestamp请求响应漏洞 修复 Traceroute探测漏洞 修复 linux 7

    ICMP timestamp请求响应漏洞 修复 Traceroute探测漏洞 修复 使用firewall-cmd打开关闭防火墙与端口 linux 7 ICMP timestamp请求响应漏洞 修复 Traceroute探测漏洞 修复 使用firewall-cmd打开关闭防火墙与端口 linux ...

    timestamp_v1.zip_stonetnd_timer_timestamp

    我们认为,如果相邻值的差距在1到20个时钟周期那是一次普通的循环。如果差距很大,比如20000000个时钟周期就意味着在那段时间,该线程并没有被执行。 程序循环把从时钟计数器读取到的值填充到一个指定大小的数组。...

    python timestamp和datetime之间转换详解

    1. **Timestamp**:表示从 1970 年 1 月 1 日(UTC/GMT 的午夜)开始所经过的秒数。这是一个浮点数,可以包含小数部分来表示毫秒或微秒级别的精度。在 Python 中,通常使用 `time` 模块中的 `time()` 函数来获取当前...

    Timestamp Camera Pro 时间戳照相机v1.218专业版.rar

    《Timestamp Camera Pro:时间戳照相机v1.218专业版详解》 在数字化时代,我们时常需要拍摄照片来记录重要时刻,而这些时刻往往伴随着特定的时间信息。Timestamp Camera Pro,这款时间戳照相机应用,正是为了满足...

    【源码阅读】 protobuf 中的 timestamp 包

    文章目录Timestamptimestamp.go如何使用 ... int64 seconds = 1; int32 nanos = 2; } timestamp.go path: github.com/golang/protobuf/ptypes/timestamp.go package ptypes import ( errors fm

    有关java中的Date,String,Timestamp之间的转化问题

    1. 使用 `Timestamp` 类:`System.out.println(new Timestamp(new java.util.Date().getTime()));`,输出结果包含时分秒。 2. 使用 `java.sql.Date` 类:`System.out.println(new java.sql.Date(new java.util.Date...

    oracle --timestamp

    根据提供的标题、描述、标签及部分内容,我们可以了解到这段文本主要涉及Oracle数据库中处理时间戳(`TIMESTAMP`)的相关操作。接下来将详细解释这些内容所包含的关键知识点。 ### 关键知识点解析 #### 1. `...

    API接口设计之token、timestamp、sign

    `token`、`timestamp`和`sign`这三者是常见的安全机制,用于确保数据的完整性和防止中间人攻击。下面将详细阐述它们的作用和实现方式。 `Token`,通常指访问令牌,是一种身份验证机制。在API交互中,客户端(如移动...

    pandas中Timestamp类用法详解

    - **时间运算**:Timestamp对象可以直接进行加减运算,例如`timestamp1 + timedelta`或`timestamp1 - timestamp2`,其中`timedelta`是时间间隔。 - **比较操作**:Timestamp对象可以进行比较操作,如`&gt;`、`、`==`...

    使用TimeStamp控制并发问题示例

    1. 数据库设计:首先,在数据库表中为需要保护的字段添加一个Timestamp(在SQL Server中称为rowversion)列。这个列会自动随着每次记录更新而改变,提供了一种检测记录是否被修改的机制。 ```sql CREATE TABLE ...

    C#更新SQLServer中TimeStamp字段(时间戳)的方法

    在C#编程中,SQL Server的时间戳(TimeStamp)字段是一个特殊的数据类型,它与我们通常理解的日期时间无关,而是用来记录数据行的版本或更改信息。本文将深入探讨如何在C#中读取和更新SQL Server中的Timestamp字段。...

    Oracle Timestamp with Time zone & java

    Oracle的Timestamp with Time Zone类型与Java的交互是数据库编程中一个重要的知识点,特别是在处理跨越时区的数据时。本文将深入探讨这两个概念以及它们在实际应用中的互动。 Oracle的Timestamp with Time Zone类型...

    TimeStamp(用java实现时间戳)

    TimeStamp(用java实现时间戳)

    Timestamp与Date互转.docx

    1. Timestamp转Date 在数据库中,我们经常使用Timestamp类型来存储时间数据。当我们从数据库中读取数据时,通常使用ResultSet来获取数据。在这种情况下,我们可以使用getTimestamp()方法来获取Timestamp类型的数据...

    SQL计算timestamp的差值的方法

    其中,`unit`是时间单位(如SECOND, MINUTE, HOUR, DAY等),`timestamp1`和`timestamp2`分别是你要比较的两个timestamp。例如,计算两个时间戳之间的秒数差: ```sql SELECT TIMESTAMPDIFF(SECOND, '2022-01-01 ...

    java中将string类型转换成timestamp类型

    "Java中将String类型转换成Timestamp类型" 在Java编程语言中,String类型和Timestamp类型是两种不同的数据类型,前者用于存储字符串数据,而后者用于存储时间戳数据。然而,在实际开发中,我们经常需要将String类型...

    oracle timestamp详解

    oracle timestamp详解 将常用的转换方法及使用注意事项都罗列出来了

Global site tag (gtag.js) - Google Analytics