首页 > 代码库 > java日期处理总结

java日期处理总结

1.java.sql.Date

从数据库中取出的日期格式(rs.getDate())是java.sql.Date,这是java.util.Date的子类。查询API后发现可用的方法很少。包含构造只有4个:

 

Date(long date)
          使用给定毫秒时间值构造一个 Date 对象。

 

 voidsetTime(long date)
          使用给定毫秒时间值设置现有 Date 对象。
 StringtoString()
          格式化日期转义形式 yyyy-mm-dd 的日期。
static DatevalueOf(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)以来的指定毫秒数。

 

voidsetTime(long time)
          设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
StringtoString()
          
把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。

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 是一月中的某一天(0131),显示为两位十进制数。
    • hh 是一天中的小时(0023),显示为两位十进制数。
    • mm 是小时中的分钟(0059),显示为两位十进制数。
    • ss 是分钟中的秒数(0061),显示为两位十进制数。(这里之所以有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);

 

  

java日期处理总结