Module  java.sql
软件包  java.sql

Class Timestamp

  • All Implemented Interfaces:
    SerializableCloneableComparable<Date>


    public class Timestamp
    extends Date

    一个围绕java.util.Date的薄型封装,允许JDBC API将其标识为SQL TIMESTAMP值。 它通过允许将秒数的规定精确到纳秒来增加保持SQL TIMESTAMP分秒数值的能力。 时间戳记还提供格式化和解析操作,以支持时间戳值的JDBC转义语法。

    Timestamp对象的精度计算为:

    • 19 ,这是yyyy-mm-dd hh中的字符数:mm:ss
    • 20 + s ,它是yyyy-mm-dd hh中的字符数:mm:ss。[fff ...]和s表示给定时间戳的缩放,分数秒精度。

    注意:此类型是java.util.Date和单独的纳秒值的复合值。 只有整数秒存储在java.util.Date组件中。 分数秒 - 纳米 - 是分开的。 Timestamp.equals(Object)方法在传递不是java.sql.Timestamp的实例的对象时不会返回true ,因为日期的nanos组件是未知的。 其结果是,该Timestamp.equals(Object)方法不相对于所述对称java.util.Date.equals(Object)方法。 此外, hashCode方法使用底层的java.util.Date实现,因此在其计算中不包括nanos。

    由于之间的差异Timestamp类和java.util.Date上述类,建议代码不能查看Timestamp一般值的一个实例java.util.Date Timestampjava.util.Date之间的继承关系真的表示实现继承,而不是类型继承。

    从以下版本开始:
    1.1
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • Timestamp

        @Deprecated(since="1.2")
        public Timestamp​(int year,
                         int month,
                         int date,
                         int hour,
                         int minute,
                         int second,
                         int nano)
        已过时。 而是使用构造函数Timestamp(long millis)
        构造一个使用给定值初始化的 Timestamp对象。
        参数
        year - 年减1900
        month - 0至11
        date - 1至31
        hour - 0至23
        minute - 0至59
        second - 0至59
        nano - 0至999,999,999
        异常
        IllegalArgumentException - 如果纳米参数超出范围
      • Timestamp

        public Timestamp​(long time)
        使用毫秒时间值构造一个Timestamp对象。 积分秒存储在基础日期值中; 小数秒将存储在Timestamp对象的nanos字段中。
        参数
        time - 自1970年1月1日00:00:00 GMT以来的毫秒。 负数是1970年1月1日00:00:00 GMT之前的毫秒数。
        另请参见:
        Calendar
    • 方法详细信息

      • setTime

        public void setTime​(long time)
        将此 Timestamp对象设置为1970年1月1日00:00:00 GMT后的 time毫秒的时间点。
        重写:
        setTimeDate
        参数
        time - 毫秒数。
        另请参见:
        getTime()Timestamp(long time)Calendar
      • getTime

        public long getTime​()
        返回自1970年1月1日以来,由 Timestamp对象表示的00:00:00 GMT的毫秒数。
        重写:
        getTimeDate
        结果
        自1970年1月1日起,以此日期为准的00:00:00 GMT的毫秒数。
        另请参见:
        setTime(long)
      • valueOf

        public static Timestamp valueOf​(String s)
        将JDBC时间戳转换格式中的一个 String对象转换为 Timestamp值。
        参数
        s - 时间戳,格式为yyyy-[m]m-[d]d hh:mm:ss[.f...] 分数秒可以省略。 也可以省略mmdd的前导零。
        结果
        相应的 Timestamp
        异常
        IllegalArgumentException - 如果给定的参数不具有格式 yyyy-[m]m-[d]d hh:mm:ss[.f...]
      • toString

        public String toString​()
        以JDBC时间戳转义格式格式化时间戳。 yyyy-mm-dd hh:mm:ss.fffffffff ,其中fffffffff表示纳秒。
        重写:
        toStringDate
        结果
        一个 String对象在 yyyy-mm-dd hh:mm:ss.fffffffff格式
        另请参见:
        Date.toLocaleString()Date.toGMTString()
      • getNanos

        public int getNanos​()
        获取此 Timestamp对象的 nanos值。
        结果
        这个 Timestamp对象的小数秒组件
        另请参见:
        setNanos(int)
      • setNanos

        public void setNanos​(int n)
        将此 Timestamp对象的 nanos字段设置为给定值。
        参数
        n - 新的分数秒分量
        异常
        IllegalArgumentException - 如果给定的参数大于999999999或小于0
        另请参见:
        getNanos()
      • equals

        public boolean equals​(Timestamp ts)
        测试这个 Timestamp对象是否等于给定的 Timestamp对象。
        参数
        ts - 与 Timestamp值进行比较
        结果
        true如果给定的Timestamp对象等于这个Timestamp对象; false否则
      • equals

        public boolean equals​(Object ts)
        测试这个Timestamp对象是否等于给定对象。 此版本的方法equals已被添加以修复Timestamp.equals(Timestamp)的不正确签名,并保留与现有类文件的向后兼容性。 注意:该方法与基类中的equals(Object)方法不对称。
        重写:
        equalsDate
        参数
        ts - 与 Object值进行比较
        结果
        true如果给定Object是一个实例Timestamp等于这个Timestamp对象; 否则为false
        另请参见:
        Date.getTime()
      • before

        public boolean before​(Timestamp ts)
        指示此 Timestamp对象是否早于给定的 Timestamp对象。
        参数
        ts - 要与 Timestamp值进行比较
        结果
        true如果这个Timestamp对象较早; 否则为false
      • after

        public boolean after​(Timestamp ts)
        指示此 Timestamp对象是否晚于给定的 Timestamp对象。
        参数
        ts - 与 Timestamp值进行比较
        结果
        true如果这个Timestamp对象是后来的; false否则
      • compareTo

        public int compareTo​(Timestamp ts)
        将此 Timestamp对象与给定的 Timestamp对象进行比较。
        参数
        ts - 要与 Timestamp对象进行比较的 Timestamp对象
        结果
        0如果两个Timestamp对象相等; 一个值小于0如果这个Timestamp对象是在给定的参数之前; 并且如果此Timestamp对象在给定参数之后,则值大于0
        从以下版本开始:
        1.4
      • compareTo

        public int compareTo​(Date o)
        将此 Timestamp对象与给定的 Date对象进行比较。
        Specified by:
        compareTo在接口 Comparable<Date>
        重写:
        compareToDate
        参数
        o -的 Date被比作此 Timestamp对象
        结果
        0如果这个Timestamp对象和给定对象是相等的; 一个值小于0如果这个Timestamp对象是在给定的参数之前; 并且如果此Timestamp对象在给定参数之后,该值大于0
        从以下版本开始:
        1.5
      • hashCode

        public int hashCode​()
        返回此对象的哈希码值。 结果是由Date.getTime()方法返回的原始long值的两半的异或。 也就是说,哈希码是表达式的值:
        
         (int)(this.getTime()^(this.getTime() >>> 32))
         
        hashCode方法使用底层的java.util.Date实现,因此在其计算中不包括java.util.Date
        重写:
        hashCodeDate
        结果
        该对象的哈希码值。
        另请参见:
        Object.equals(java.lang.Object)System.identityHashCode(java.lang.Object)
      • valueOf

        public static Timestamp valueOf​(LocalDateTime dateTime)
        获取的实例TimestampLocalDateTime对象,以相同的年,月,月日,时,分,秒和毫微秒日期时间值作为提供LocalDateTime

        提供的LocalDateTime被解释为本地时区的本地日期时间。

        参数
        dateTime - a转换 LocalDateTime
        结果
        一个 Timestamp对象
        异常
        NullPointerException - 如果 dateTime为空。
        从以下版本开始:
        1.8
      • toLocalDateTime

        public LocalDateTime toLocalDateTime​()
        将此Timestamp对象转换为LocalDateTime

        该转换将创建一个LocalDateTime ,表示当地时区Timestamp的同一年,月,日,月,日,时间和Timestamp日期时间值。

        结果
        表示相同日期时间值的 LocalDateTime对象
        从以下版本开始:
        1.8
      • from

        public static Timestamp from​(Instant instant)
        Instant对象获取Timestamp的实例。

        Instant可以在未来更进一步的时间点上存储积分,并且在过去比Date进一步。 在这种情况下,此方法将抛出异常。

        参数
        instant - 即时转换
        结果
        一个 Timestamp代表在提供的时刻的时间线上的相同点
        异常
        NullPointerException - 如果 instant为空。
        IllegalArgumentException - 如果瞬间太大,无法表示为 Timestamp
        从以下版本开始:
        1.8
      • toInstant

        public Instant toInstant​()
        将此Timestamp对象转换为Instant

        该转换创建一个Instant ,代表与此Timestamp的时间线上的相同点。

        重写:
        toInstantDate
        结果
        即时表示时间线上的同一点
        从以下版本开始:
        1.8