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());