Module java.sql
Package java.sql

Class Timestamp

java.lang.Object
java.util.Date
java.sql.Timestamp
所有已实现的接口:
Serializable, Cloneable, Comparable<Date>

public class Timestamp extends Date

一个围绕java.util.Date的薄包装器,允许JDBC API将其标识为SQL TIMESTAMP值。它增加了持有SQL TIMESTAMP分数秒值的能力,通过允许指定分数秒精度为纳秒。Timestamp还提供了格式化和解析操作,以支持JDBC转义语法用于时间戳值。

Timestamp对象的精度计算为:

  • 19 ,即yyyy-mm-dd hh:mm:ss中的字符数
  • 20 + s ,即yyyy-mm-dd hh:mm:ss.[fff...]中的字符数,s表示给定Timestamp的刻度,即其分数秒精度。

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

由于上述Timestamp类和java.util.Date类之间的差异,建议代码不将Timestamp值通用地视为java.util.Date的实例。Timestamp和java.util.Date之间的继承关系实际上表示实现继承,而不是类型继承。

自:
1.1
参见:
  • Constructor Details

    • Timestamp

      @Deprecated(since="1.2") public Timestamp(int year, int month, int date, int hour, int minute, int second, int nano)
      Deprecated.
      instead use the constructor 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之前的毫秒数。
      参见:
  • Method Details

    • setTime

      public void setTime(long time)
      将此Timestamp对象设置为表示距离1970年1月1日00:00:00 GMTtime毫秒的时间点。
      覆盖:
      setTime 在类 Date
      参数:
      time - 毫秒数。
      参见:
    • getTime

      public long getTime()
      返回此Timestamp对象表示的自1970年1月1日00:00:00 GMT以来的毫秒数。
      覆盖:
      getTime 在类 Date
      返回:
      此日期表示的自1970年1月1日00:00:00 GMT以来的毫秒数。
      参见:
    • 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表示纳秒。
      覆盖:
      toString 在类 Date
      返回:
      一个以yyyy-mm-dd hh:mm:ss.fffffffff格式的String对象
      参见:
    • getNanos

      public int getNanos()
      获取此Timestamp对象的nanos值。
      返回:
      Timestamp对象的分数秒组件
      参见:
    • setNanos

      public void setNanos(int n)
      将此Timestamp对象的nanos字段设置为给定值。
      参数:
      n - 新的分数秒组件
      抛出:
      IllegalArgumentException - 如果给定的参数大于999999999或小于0
      参见:
    • equals

      public boolean equals(Timestamp ts)
      测试此Timestamp对象是否等于给定的Timestamp对象。
      参数:
      ts - 要比较的Timestamp
      返回:
      如果给定的Timestamp对象等于此Timestamp对象,则返回true;否则返回false
    • equals

      public boolean equals(Object ts)
      测试此Timestamp对象是否等于给定对象。此版本的equals方法已添加以修复Timestamp.equals(Timestamp)的不正确签名,并保留与现有类文件的向后兼容性。注意: 此方法对于基类中的equals(Object)方法不是对称的。
      覆盖:
      equals 在类 Date
      参数:
      ts - 要比较的Object
      返回:
      如果给定的Object是等于这个Timestamp对象的Timestamp实例,则返回true; 否则返回false
      参见:
    • before

      public boolean before(Timestamp ts)
      表示此Timestamp对象是否早于给定的Timestamp对象。
      参数:
      ts - 要比较的Timestamp
      返回:
      如果此Timestamp对象早于给定对象,则返回true; 否则返回false
    • after

      public boolean after(Timestamp ts)
      表示此Timestamp对象是否晚于给定的Timestamp对象。
      参数:
      ts - 要比较的Timestamp
      返回:
      如果此Timestamp对象晚于给定对象,则返回true; 否则返回false
    • compareTo

      public int compareTo(Timestamp ts)
      比较此Timestamp对象与给定的Timestamp对象。
      参数:
      ts - 要与此Timestamp对象进行比较的Timestamp对象
      返回:
      如果两个Timestamp对象相等,则返回值0; 如果此Timestamp对象在给定参数之前,则返回小于0的值; 如果此Timestamp对象在给定参数之后,则返回大于0的值。
      自从:
      1.4
    • compareTo

      public int compareTo(Date o)
      将此Timestamp对象与给定的Date对象进行比较。
      指定者:
      compareTo 在接口 Comparable<Date>
      覆盖:
      compareTo 在类 Date
      参数:
      o - 要与此Timestamp对象进行比较的Date
      返回:
      如果此Timestamp对象和给定对象相等,则返回值0; 如果此Timestamp对象在给定参数之前,则返回小于0的值; 如果此Timestamp对象在给定参数之后,则返回大于0的值。
      自从:
      1.5
    • hashCode

      public int hashCode()
      为此对象返回一个哈希码值。结果是通过Date.getTime()方法返回的原始long值的两半的异或。也就是说,哈希码是以下表达式的值:
      
       (int)(this.getTime()^(this.getTime() >>> 32))
       
      hashCode方法使用底层的java.util.Date实现,因此在计算中不包括纳秒。
      覆盖:
      hashCode 在类 Date
      返回:
      该对象的哈希码值。
      参见:
    • valueOf

      public static Timestamp valueOf(LocalDateTime dateTime)
      LocalDateTime对象获取一个Timestamp实例,其年、月、日、小时、分钟、秒和纳秒日期时间值与提供的LocalDateTime相同。

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

      参数:
      dateTime - 要转换的LocalDateTime
      返回:
      一个Timestamp对象
      抛出:
      NullPointerException - 如果dateTime为null。
      自从:
      1.8
    • toLocalDateTime

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

      转换创建一个LocalDateTime,表示与此Timestamp相同的年、月、日、小时、分钟、秒和纳秒日期时间值,位于本地时区中。

      返回:
      一个表示相同日期时间值的LocalDateTime对象
      自从:
      1.8
    • from

      public static Timestamp from(Instant instant)
      Instant对象获取一个Timestamp实例。

      Instant可以存储比Date更远的时间线上的时间点。在这种情况下,此方法将抛出异常。

      参数:
      instant - 要转换的瞬时时间
      返回:
      一个表示与提供的瞬时时间相同时间线上的Timestamp
      抛出:
      NullPointerException - 如果instant为null。
      IllegalArgumentException - 如果瞬时时间太大,无法表示为Timestamp
      自从:
      1.8
    • toInstant

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

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

      覆盖:
      toInstant 在类 Date
      返回:
      一个表示相同时间线上的瞬时时间的实例
      自从:
      1.8