1.java.sql.Date
从数据库中取出的日期格式(rs.getDate())是java.sql.Date,这是java.util.Date的子类。查询API后发现可用的方法很少。包含构造只有4个:
Date(long date) 使用给定毫秒时间值构造一个 Date 对象。 |
void | setTime(long date) 使用给定毫秒时间值设置现有 Date 对象。 |
String | toString() 格式化日期转义形式 yyyy-mm-dd 的日期。 |
static Date | valueOf(String s) 将 JDBC 日期转义形式的字符串转换成 Date 值。 |
其中valueOf方法中的s表示 "yyyy-mm-dd" 形式的日期的 String
对象,如果不是这种格式,则报错。而toString方法则默认返回"yyyy-mm-dd" 形式的日期。
2.java.util.Date
java.util.Date反应的是世界时(UTC)。date常用的方法有:
Date():初始化当前时间 |
Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。 |
void | setTime(long time) 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 |
String |
|
date的toString()方法内容详细如下:
把此 Date
对象转换为以下形式的 String
:
dow mon dd hh:mm:ss zzz yyyy
其中:
-
- dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。
- mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。
- dd 是一月中的某一天(01 至 31),显示为两位十进制数。
- hh 是一天中的小时(00 至 23),显示为两位十进制数。
- mm 是小时中的分钟(00 至 59),显示为两位十进制数。
- ss 是分钟中的秒数(00 至 61),显示为两位十进制数。(这里之所以有61秒是因为对于 UTC,大约每一两年出现一次额外的一秒,称为“闰秒”。闰秒始终作为当天的最后一秒增加,并且始终在 12 月 31 日或 6 月 30 日增加。)
- zzz 是时区(并可以反映夏令时)。标准时区缩写包括方法 parse 识别的时区缩写。如果不提供时区信息,则 zzz 为空,即根本不包括任何字符。
- yyyy 是年份,显示为 4 位十进制数。
3.日期格式化DateFormat和SimpleDateFormat
DateFormat是一个抽象类,真正格式化日期的类是SimpleDateFormat。
日期和时间模式:
日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A'
到 'Z'
和 'a'
到 'z'
被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 ('
) 引起来,以免进行解释。"''"
表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。
下面举个例子:
1 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 2 System.out.println(sdf.format(new Date())); 3 Date date=sdf.parse("2015-01-29 9:20:20"); 4 System.out.println(date);
输出结果:
2015-01-28 09:46:55
Thu Jan 29 09:20:20 CST 2015