java.sql

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

public class Timestamp
     
extends Date

一个与 java.util.Date 类有关的瘦包装器 (thin wrapper),它允许 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,因为日期的毫微秒组件是未知的。因此,相对于 java.util.Date.equals(Object) 方法而言,Timestamp.equals(Object) 方法是不对称的。此外,hashcode 方法使用底层 java.util.Date 实现并因此在其计算中不包括毫微秒。

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

另请参见:
序列化表格

构造方法摘要
Timestamp(int year, int month, int date, int hour, int minute, int second, int nano)
          已过时。 使用构造方法 Timestamp(long millis) 来代替
Timestamp(long time)
          使用毫秒时间值构造 Timestamp 对象。
 
方法摘要
 boolean after(Timestamp ts)
          指示此 Timestamp 对象是否晚于给定的 Timestamp 对象。
 boolean before(Timestamp ts)
          指示此 Timestamp 对象是否早于给定的 Timestamp 对象。
 int compareTo(Date o)
          将此 Timestamp 对象与给定的 Date(必须为 Timestamp 对象)相比较。
 int compareTo(Timestamp ts)
          将此 Timestamp 对象与给定 Timestamp 对象相比较。
 boolean equals(Object ts)
          测试此对象是否等于给定的 Timestamp 对象。
 boolean equals(Timestamp ts)
          测试此 Timestamp 对象是否等于给定的 Timestamp 对象。
 int getNanos()
          获取此 Timestamp 对象的 nanos 值。
 long getTime()
          返回此 Timestamp 对象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。
 void setNanos(int n)
          将此 Timestamp 对象的 nanos 字段设置为给定值。
 void setTime(long time)
          设置此 Timestamp 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
 String toString()
          使用 JDBC 时间戳转义格式编排时间戳。
static Timestamp valueOf(String s)
          将使用 JDBC 时间戳转义格式的 String 对象转换为 Timestamp 值。
 
从类 java.util.Date 继承的方法
after, before, clone, getDate, getDay, getHours, getMinutes, getMonth, getSeconds, getTimezoneOffset, getYear, hashCode, parse, setDate, setHours, setMinutes, setMonth, setSeconds, setYear, toGMTString, toLocaleString, UTC
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

Timestamp

@Deprecated
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 毫秒的时间点。

覆盖:
Date 中的 setTime
参数:
time - 毫秒数。
另请参见:
getTime(), Timestamp(long time), Calendar

getTime

public long getTime()
返回此 Timestamp 对象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。

覆盖:
Date 中的 getTime
返回:
此日期表示的自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。
另请参见:
setTime(long)

valueOf

public static Timestamp valueOf(String s)
将使用 JDBC 时间戳转义格式的 String 对象转换为 Timestamp 值。

参数:
s - 使用 yyyy-mm-dd hh:mm:ss[.f...] 格式的时间戳。可以省略小数秒。
返回:
相应的 Timestamp
抛出:
IllegalArgumentException - 如果给定的参数不具有 yyyy-mm-dd hh:mm:ss[.f...] 格式

toString

public String toString()
使用 JDBC 时间戳转义格式编排时间戳。 yyyy-mm-dd hh:mm:ss.fffffffff,其中 ffffffffff 指示毫微秒。

覆盖:
Date 中的 toString
返回:
使用 yyyy-mm-dd hh:mm:ss.fffffffff 格式的 String 对象
另请参见:
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
返回:
如果给定 Timestamp 对象等于此 Timestamp 对象,则返回 true,否则返回 false

equals

public boolean equals(Object ts)
测试此对象是否等于给定的 Timestamp 对象。 添加了此版本的 equals 方法,可以修复不正确的 Timestamp.equals(Timestamp) 签名,并保留与现有类文件的向后兼容性。 注:相对于基类中的 equals(Object) 方法而言,此方法是不对称的。

覆盖:
Date 中的 equals
参数:
ts - 要与之进行比较的 Object
返回:
如果给定 Object 是等于此 Timestamp 对象的 Timestamp 实例,则返回 true;否则返回 false
另请参见:
Date.getTime()

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(必须为 Timestamp 对象)相比较。如果参数不是 Timestamp 对象,则此方法抛出 ClassCastException 对象。( Timestamp 只有与其他的 Timestamp 对象相比较。)

指定者:
接口 Comparable<Date> 中的 compareTo
覆盖:
Date 中的 compareTo
参数:
o - 要比较的 Date,必须为 Timestamp 对象
返回:
如果此 Timestamp 对象与给定对象相等,则返回值 0;如果此 Timestamp 对象早于给定参数,则返回小于 0 的值;如果此 Timestamp 对象晚于给定参数,则返回大于 0 的值。
从以下版本开始:
1.5