模块 java.sql
 java.sql

类 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 小数秒值的能力,允许小数秒的规格达到纳秒的精度。时间戳还提供格式化和解析操作以支持时间戳值的 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 ,因为日期的纳米组件是未知的。因此,Timestamp.equals(Object) 方法与 java.util.Date.equals(Object) 方法不对称。此外,hashCode 方法使用底层 java.util.Date 实现,因此在其计算中不包括纳米。

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

自从:
1.1
参见:
  • 构造方法详细信息

    • 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 - 如果 nano 参数超出范围
    • Timestamp

      public Timestamp(long time)
      使用毫秒时间值构造一个 Timestamp 对象。整数秒存储在基础日期值中;小数秒存储在 Timestamp 对象的 nanos 字段中。
      参数:
      time - 自格林威治标准时间 1970 年 1 月 1 日 00:00:00 以来的毫秒数。负数是 1970 年 1 月 1 日 00:00:00 GMT 之前的毫秒数。
      参见:
  • 方法详情

    • setTime

      public void setTime(long time)
      设置此 Timestamp 对象以表示格林威治标准时间 1970 年 1 月 1 日 00:00:00 后 time 毫秒的时间点。
      重写:
      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
      返回:
      true 如果给定的 Timestamp 对象等于此 Timestamp 对象; false否则
    • equals

      public boolean equals(Object  ts)
      测试这个 Timestamp 对象是否等于给定的对象。添加此版本的方法 equals 是为了修复 Timestamp.equals(Timestamp) 的错误签名并保持与现有类文件的向后兼容性。注意:此方法相对于基类中的equals(Object) 方法不是对称的。
      重写:
      equals 在类 Date
      参数:
      ts - 要与之比较的 Object
      返回:
      true 如果给定的 Object 是等于此 Timestamp 对象的 Timestamp 的实例; false否则
      参见:
    • 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 对象
      返回:
      如果两个 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 为空。
      自从:
      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 为空。
      IllegalArgumentException - 如果瞬间太大而无法表示为 Timestamp
      自从:
      1.8
    • toInstant

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

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

      重写:
      toInstant 在类 Date
      返回:
      代表时间线上同一点的瞬间
      自从:
      1.8