java.lang.Object
java.util.Date
java.sql.Timestamp
- 所有已实现的接口:
-
Serializable
,Cloneable
,Comparable<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 Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
表示此Timestamp
对象是否晚于给定的Timestamp
对象。boolean
表示此Timestamp
对象是否早于给定的Timestamp
对象。int
将此Timestamp
对象与给定的Timestamp
对象进行比较。int
将此Timestamp
对象与给定的Date
对象进行比较。boolean
测试此Timestamp
对象是否等于给定对象。boolean
测试此Timestamp
对象是否等于给定的Timestamp
对象。static Timestamp
从Instant
对象获取Timestamp
的实例。int
getNanos()
获取此Timestamp
对象的nanos
值。long
getTime()
返回此Timestamp
对象表示的自1970年1月1日00:00:00 GMT以来的毫秒数。int
hashCode()
返回此对象的哈希码值。void
setNanos
(int n) 将此Timestamp
对象的nanos
字段设置为给定值。void
setTime
(long time) 将此Timestamp
对象设置为表示距离1970年1月1日00:00:00 GMTtime
毫秒的时间点。将此Timestamp
对象转换为Instant
。将此Timestamp
对象转换为LocalDateTime
。toString()
以JDBC时间戳转义格式格式化时间戳。static Timestamp
将JDBC时间戳转义格式中的String
对象转换为Timestamp
值。static Timestamp
valueOf
(LocalDateTime dateTime) 从LocalDateTime
对象获取Timestamp
的实例,其年、月、日、小时、分钟、秒和纳秒日期时间值与提供的LocalDateTime
相同。Methods declared in class java.util.Date
after, before, clone, getDate, getDay, getHours, getMinutes, getMonth, getSeconds, getTimezoneOffset, getYear, parse, setDate, setHours, setMinutes, setMonth, setSeconds, setYear, toGMTString, toLocaleString, UTC
-
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 constructorTimestamp(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
毫秒的时间点。 -
getTime
public long getTime()返回此Timestamp
对象表示的自1970年1月1日00:00:00 GMT以来的毫秒数。 -
valueOf
将JDBC时间戳转义格式中的String
对象转换为Timestamp
值。- 参数:
-
s
- 格式为yyyy-[m]m-[d]d hh:mm:ss[.f...]
的时间戳。分数秒可能被省略。对于mm
和dd
的前导零也可能被省略。 - 返回:
-
相应的
Timestamp
值 - 抛出:
-
IllegalArgumentException
- 如果给定的参数不符合格式yyyy-[m]m-[d]d hh:mm:ss[.f...]
-
toString
以JDBC时间戳转义格式格式化时间戳。yyyy-mm-dd hh:mm:ss.fffffffff
,其中fffffffff
表示纳秒。 -
getNanos
public int getNanos()获取此Timestamp
对象的nanos
值。- 返回:
-
此
Timestamp
对象的分数秒组件 - 参见:
-
setNanos
public void setNanos(int n) 将此Timestamp
对象的nanos
字段设置为给定值。- 参数:
-
n
- 新的分数秒组件 - 抛出:
-
IllegalArgumentException
- 如果给定的参数大于999999999或小于0 - 参见:
-
equals
测试此Timestamp
对象是否等于给定的Timestamp
对象。- 参数:
-
ts
- 要比较的Timestamp
值 - 返回:
-
如果给定的
Timestamp
对象等于此Timestamp
对象,则返回true
;否则返回false
-
equals
测试此Timestamp
对象是否等于给定对象。此版本的equals
方法已添加以修复Timestamp.equals(Timestamp)
的不正确签名,并保留与现有类文件的向后兼容性。注意: 此方法对于基类中的equals(Object)
方法不是对称的。 -
before
表示此Timestamp
对象是否早于给定的Timestamp
对象。- 参数:
-
ts
- 要比较的Timestamp
值 - 返回:
-
如果此
Timestamp
对象早于给定对象,则返回true
; 否则返回false
-
after
表示此Timestamp
对象是否晚于给定的Timestamp
对象。- 参数:
-
ts
- 要比较的Timestamp
值 - 返回:
-
如果此
Timestamp
对象晚于给定对象,则返回true
; 否则返回false
-
compareTo
比较此Timestamp
对象与给定的Timestamp
对象。- 参数:
-
ts
- 要与此Timestamp
对象进行比较的Timestamp
对象 - 返回:
-
如果两个
Timestamp
对象相等,则返回值0
; 如果此Timestamp
对象在给定参数之前,则返回小于0
的值; 如果此Timestamp
对象在给定参数之后,则返回大于0
的值。 - 自从:
- 1.4
-
compareTo
将此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
实现,因此在计算中不包括纳秒。 -
valueOf
从LocalDateTime
对象获取一个Timestamp
实例,其年、月、日、小时、分钟、秒和纳秒日期时间值与提供的LocalDateTime
相同。提供的
LocalDateTime
被解释为本地时区中的本地日期时间。- 参数:
-
dateTime
- 要转换的LocalDateTime
- 返回:
-
一个
Timestamp
对象 - 抛出:
-
NullPointerException
- 如果dateTime
为null。 - 自从:
- 1.8
-
toLocalDateTime
将此Timestamp
对象转换为LocalDateTime
。转换创建一个
LocalDateTime
,表示与此Timestamp
相同的年、月、日、小时、分钟、秒和纳秒日期时间值,位于本地时区中。- 返回:
-
一个表示相同日期时间值的
LocalDateTime
对象 - 自从:
- 1.8
-
from
从Instant
对象获取一个Timestamp
实例。Instant
可以存储比Date
更远的时间线上的时间点。在这种情况下,此方法将抛出异常。- 参数:
-
instant
- 要转换的瞬时时间 - 返回:
-
一个表示与提供的瞬时时间相同时间线上的
Timestamp
- 抛出:
-
NullPointerException
- 如果instant
为null。 -
IllegalArgumentException
- 如果瞬时时间太大,无法表示为Timestamp
- 自从:
- 1.8
-
toInstant
将此Timestamp
对象转换为一个Instant
。转换创建一个
Instant
,表示与此Timestamp
相同时间线上的时间点。
-
Timestamp(long millis)