首页 > 学院 > 开发设计 > 正文

Java 日期类型详解

2019-11-15 00:09:39
字体:
来源:转载
供稿:网友
java 日期类型详解

java api中日期类型的继承关系

java.lang.Object

--java.util.Date

--java.sql.Date

--java.sql.Time

--java.sql.Timestamp

java.util.Date表示特定的瞬间,精确到了毫秒:

两个构造函数(别的过期了的我就不说了) Date() Date(long date) 主要方法》》

boolean

after(Datewhen) 测试此日期是否在指定日期之后。

boolean

before(Datewhen) 测试此日期是否在指定日期之前。

Object

clone() 返回此对象的副本。

int

compareTo(DateanotherDate) 比较两个日期的顺序。

boolean

equals(Objectobj) 比较两个日期的相等性。

long

getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此Date对象表示的毫秒数。(最常用的方法了)

java.sql下面的包主要是用在jdbc下的使用

Timestamp()

此类型由java.util.Date和单独的毫微秒值组成。只有整数秒才会存储在java.util.Date组件中。小数秒(毫微秒)是独立存在的。传递java.util.Date类型的值时,Timestamp.equals(Object)方法永远不会返回true,因为日期的毫微秒组件是未知的。因此,相对于java.util.Date.equals(Object)方法而言,Timestamp.equals(Object)方法是不对称的。此外,hashcode方法使用基础java.util.Date实现并因此在其计算中不包括毫微秒。

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

构造方法:

Timestamp(longtime)使用毫秒时间值构造Timestamp对象。

boolean

after(Timestampts) 指示此Timestamp对象是否晚于给定的Timestamp对象。

boolean

before(Timestampts) 指示此Timestamp对象是否早于给定的Timestamp对象。

int

compareTo(Dateo) 将此Timestamp对象与给定的Date(必须为Timestamp对象)相比较。

int

compareTo(Timestampts) 将此Timestamp对象与给定Timestamp对象相比较。

boolean

equals(Objectts) 测试此对象是否等于给定的Timestamp对象。

boolean

equals(Timestampts) 测试此Timestamp对象是否等于给定的Timestamp对象。

int

getNanos()(因为刚才说过了 我们不能通过java.util.Date来获得毫秒 ,timestamp就自己提供) 获取此Timestamp对象的nanos值。

long

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

void

setNanos(intn) 将此Timestamp对象的nanos字段设置为给定值。

void

setTime(longtime) 设置此Timestamp对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后time毫秒的时间点。

String

toString() 使用 JDBC 时间戳转义格式编排时间戳。

staticTimestamp

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

因为是继承了java.util.Date 所以也继承了里面的方法。。这个类的主要作用就是在数据库中插入时间,那有些人就会问为什么不用java.sql.Date,那么我们就来看下java.sql.Date>>

java.sql.Date》》

构造方法Date(longdate)使用给定毫秒时间值构造一个Date对象。

void

setTime(longdate) 使用给定毫秒时间值设置现有Date对象。

String

toString() 格式化日期转义形式 yyyy-mm-dd 的日期。

staticDate

valueOf(Strings) 将 JDBC 日期转义形式的字符串转换成Date值。

可能有人发现了在我们用这个java.sql.Date类型插入数据库的时候会发现丢失了时分秒,发生了自动截取,这是为什么呢?

原来java.sql.Date是为了配合SQL DATE而设置的数据类型。“规范化”的java.sql.Date只包含年月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD。当我们调用ResultSet的

getDate()方法来获得返回值时,java程序会参照"规范"的java.sql.Date来格式化数据库中的数值。因此,如果数据库中存在的非规范化部分的信息将会被劫取。所以我们要精确的日期时应该使用Timestamp

Time():

Time(longtime)使用毫秒时间值构造Time对象。

void

setTime(longtime) 使用毫秒时间值设置Time对象。

String

toString() 使用 JDBC 时间转义格式对时间进行格式化。

staticTime

valueOf(Strings) 将使用 JDBC 时间转义格式的字符串转换为Time值。

有了上面这些知识后,我们要进行转换就发现一目了然了>>>基本都是可以通过getTime()方法获得long类型的毫秒数在通过构造函数把这毫秒数传过去就完成了转换。如:

java.util.Date d = newjava.util.Date(sqlDate.getTime());


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表