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(Date when) 测试此日期是否在指定日期之后。 |
boolean |
before(Date when) 测试此日期是否在指定日期之前。 |
Object |
clone() 返回此对象的副本。 |
int |
compareTo(Date anotherDate) 比较两个日期的顺序。 |
boolean |
equals(Object obj) 比较两个日期的相等性。 |
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(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()(因为刚才说过了 我们不能通过java.util.Date来获得毫秒 ,timestamp就自己提供) 获取此 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 所以也继承了里面的方法。。这个类的主要作用就是在数据库中插入时间,那有些人就会问为什么不用java.sql.Date,那么我们就来看下java.sql.Date>>
java.sql.Date》》
构造方法Date(long date)
使用给定毫秒时间值构造一个 Date 对象。
void |
setTime(long date) 使用给定毫秒时间值设置现有 Date 对象。 |
String |
toString() 格式化日期转义形式 yyyy-mm-dd 的日期。 |
static Date |
valueOf(String s) 将 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(long time)
使用毫秒时间值构造 Time 对象。
void |
setTime(long time) 使用毫秒时间值设置 Time 对象。 |
String |
toString() 使用 JDBC 时间转义格式对时间进行格式化。 |
static Time |
valueOf(String s) 将使用 JDBC 时间转义格式的字符串转换为 Time 值。 |
有了上面这些知识后,我们要进行转换就发现一目了然了>>>基本都是可以通过getTime()方法获得long类型的毫秒数 在通过构造函数把这毫秒数传过去就完成了转换。如:
java.util.Date d = new java.util.Date(sqlDate.getTime());
作者:Orson
出处:http://www.cnblogs.com/java-class/
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】
如果,您对我的博客内容感兴趣,请继续关注我的后续博客,我是【Orson】
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段 声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载:http://www.cnblogs.com/java-class/p/4497906.html