java 使用simpleDateFormat格式化日期 时间


首先了解一下格式化日志的所有表示:

  1. 时间日期标识符:  

  2. yyyy:年  

  3. MM:月  

  4. dd:日   

  5. hh:1~12小时制(1-12)  

  1. HH:24小时制(0-23)  

  2. mm:分  

  3. ss:秒   

  4. S:毫秒   

  5. E:星期几  

  6. D:一年中的第几天  

  7. F:一月中的第几个星期(会把这个月总共过的天数除以7)  

  8. w:一年中的第几个星期  

  9. W:一月中的第几星期(会根据实际情况来算)  

  10. a:上下午标识  

  11. k:和HH差不多,表示一天24小时制(1-24)。  

  12. K:和hh<span style="font-family: Arial, Helvetica, sans-serif;">差不多</span><span style="font-family: Arial, Helvetica, sans-serif;">,表示一天12小时制(0-11)。</span>  

  13. z:表示时区  

要注意其中的大小写,不然会格式化后的日期会不同。

同时没个字母可以写多个,如:yyyyyyyyyyy。根据你的数大小,根据写的字母的长度,在前面补零。


比如:你要把2013 - 08 - 13 15:29:44这个时间格式化成2013 年 08 月 13 日 15 时 29 分 44 秒

一不小心把格式化日期中时间标识符中的大小写搞错了。


下面是把日期格式话成最全的例子:


  1. SimpleDateFormat sdf = new SimpleDateFormat("yyyyyyyy-MM-dd HH(hh):mm:ss S E D F w W a k K z");  
            long times = System.currentTimeMillis();  
            System.out.println(times);  
            Date date = new Date(times);  
            String tim = sdf.format(date);  
            System.out.println(tim);

输出的结果:

  1. 00002013-08-14 15(03):56:40 742 星期三 226 2 33 3 下午 15 3 CST  


--------------------------------------------------------------------------------

  1. SimpleDateFormat sdf = new SimpleDateFormat("现在是yyyy年MM月dd日 HH(hh)时   mm分 ss秒 S毫秒   星期E 今年的第D天  这个月的第F星期   今年的第w个星期   这个月的第W个星期  今天的a k1~24制时间 K0-11小时制时间 z时区");  
            long times = System.currentTimeMillis();  
            System.out.println(times);  
            Date date = new Date(times);  
            String tim = sdf.format(date);  
            System.out.println(tim);

输出结果:

  1. 现在是2013年08月14日 16(04)时   03分 03秒 812毫秒   星期星期三 今年的第226天  这个月的第2星期   今年的第33个星期   这个月的第3个星期  今天的下午 161~24制时间 40-11小时制时间 CST时区  

 

wKiom1YfDaqz-jFXAAGfZLm3Ar4001.jpg