日期格式私人定制——SimpleDateFormat

时间:2022-09-11 14:40:55

  【前言】  

  最近项目需要特殊的日期格式,又恰好是String类型的,以前都没怎么用到SimpleDateFormat这个类去格式化日期,脑子里蹦出来的思路就是先把Date给toString了,然后慢慢切割字符串!天呐,这么不科学的方法都有。翻翻笔记,发现可用用SimpleDateFormat来处理,在这里就对这个类做个使用总结吧!

  【先把总结帖出来】

  在SimpleDateFormat里面,字母有特殊的意义,比如说说 "年——yyyy","月——mm",所以记住这些映射关系是很有必要的。下面总结出常用的映射关系:

意思 符号
公元 G
中文的星期几 EEE
中文的月份 MMM
简写的年份,如14年 yy
上午   a
普通数字日期 yyyy:mm:dd 'at' hh:mm:ss

  

效果 对应的格式
2014.08.02 公元 at 10:10:23 CST yyyy.MM.dd G 'at' HH:mm:ss z
   
星期六, 八月 2, '14 EEE, MMM d, ''yy
   
10:10 上午 h:mm a
   
10:10 上午, CST K:mm a, z
   
2014.08.02 公元 at 10:10:23 CST yyyy.MM.dd G 'at' HH:mm:ss z
   
02014.八月.02 公元 10:10 上午 yyyyy.MMMMM.dd GGG hh:mm aaa
   
星期六, 2 八月 2014 10:10:23 +0800 EEE, d MMM yyyy HH:mm:ss Z
   
140802101023+0800 yyMMddHHmmssZ
   
2014-08-02T10:10:23.164+0800 yyyy-MM-dd'T'HH:mm:ss.SSSZ

 

  【使用demo】

日期格式私人定制——SimpleDateFormat日期格式私人定制——SimpleDateFormat
 1 public class Test {
2
3 public static void testSiampleDateFormat(){
4 Date date = new Date();
5
6 SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
7 String s1 = simpleDateFormat1.format(date);
8 System.out.println("yyyy.MM.dd G 'at' HH:mm:ss z-----------------"+s1);
9
10 SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("EEE, MMM d, ''yy");
11 String s2 = simpleDateFormat2.format(date);
12 System.out.println("EEE, MMM d, ''yy-----------------"+s2);
13
14 SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("h:mm a");
15 String s3 = simpleDateFormat3.format(date);
16 System.out.println("h:mm a-----------------"+s3);
17
18 SimpleDateFormat simpleDateFormat4 = new SimpleDateFormat("K:mm a, z");
19 String s4 = simpleDateFormat4.format(date);
20 System.out.println("K:mm a, z-----------------"+s4);
21
22 SimpleDateFormat simpleDateFormat5 = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
23 String s5 = simpleDateFormat5.format(date);
24 System.out.println("yyyy.MM.dd G 'at' HH:mm:ss z-----------------"+s5);
25
26 SimpleDateFormat simpleDateFormat6 = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa");
27 String s6 = simpleDateFormat6.format(date);
28 System.out.println("yyyyy.MMMMM.dd GGG hh:mm aaa-----------------"+s6);
29
30 SimpleDateFormat simpleDateFormat7 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
31 String s7 = simpleDateFormat7.format(date);
32 System.out.println("EEE, d MMM yyyy HH:mm:ss Z-----------------"+s7);
33
34 SimpleDateFormat simpleDateFormat8 = new SimpleDateFormat("yyMMddHHmmssZ");
35 String s8 = simpleDateFormat8.format(date);
36 System.out.println("yyMMddHHmmssZ-----------------"+s8);
37
38 SimpleDateFormat simpleDateFormat9 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
39 String s9 = simpleDateFormat9.format(date);
40 System.out.println("yyyy-MM-dd'T'HH:mm:ss.SSSZ-----------------"+s9);
41 }
42
43 public static void main(String[] args) {
44
45 testSiampleDateFormat();
46 }
47 }
View Code

     【 结果打印出】

日期格式私人定制——SimpleDateFormat日期格式私人定制——SimpleDateFormat
1 yyyy.MM.dd G 'at' HH:mm:ss z-----------------2014.08.02 公元 at 10:10:23 CST
2 EEE, MMM d, ''yy-----------------星期六, 八月 2, '14
3 h:mm a-----------------10:10 上午
4 K:mm a, z-----------------10:10 上午, CST
5 yyyy.MM.dd G 'at' HH:mm:ss z-----------------2014.08.02 公元 at 10:10:23 CST
6 yyyyy.MMMMM.dd GGG hh:mm aaa-----------------02014.八月.02 公元 10:10 上午
7 EEE, d MMM yyyy HH:mm:ss Z-----------------星期六, 2 八月 2014 10:10:23 +0800
8 yyMMddHHmmssZ-----------------140802101023+0800
9 yyyy-MM-dd'T'HH:mm:ss.SSSZ-----------------2014-08-02T10:10:23.164+0800
View Code