關於java中的日期格式設置

1、YYYY和yyyy的區別

      首先先看看我的本地系統時間

測試這大寫YYYY和小寫yyyy的區別

public static void main(String[] args) {
	String time1 = new SimpleDateFormat(" yyyy-MM-dd HH_mm_ss").format(new Date());
	String time2 = new SimpleDateFormat(" YYYY-MM-dd HH_mm_ss").format(new Date());
	System.out.println(time1);
	System.out.println(time2);
}
 2019-12-30 10_16_03
 2020-12-30 10_16_03

*解析:YYYY在Java中指的是Week year  就是說這週中有沒有跨年的日期(週日開始-週六結束爲一週),例如上圖中當前所     在的周爲 12.29-01.4爲一週  這周跨年所以YYYY年就指向下一年 2020

 

**警告  warning

Data轉String的時候上述規則符合,但是String轉Date時,上述規則不符合

public static void main(String[] args) {
		
	// 獲得2019-12-30的Date對象
	SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	Date myDate1 = null;
	try {
	    myDate1 = dateFormat1.parse("2019-12-30 22:36:01");
	} catch (ParseException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}
	System.out.println(myDate1);
		
	// 獲得2019-12-30 的Date對象
	SimpleDateFormat dateFormat2 = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
	Date myDate2 = null;
	try {
	    myDate2 = dateFormat2.parse("2019-12-30 22:36:01");
	} catch (ParseException e1) {
	    // TODO Auto-generated catch block
	    e1.printStackTrace();
	}
	System.out.println(myDate2);

}
Mon Dec 30 22:36:01 GMT+08:00 2019
Sun Dec 30 22:36:01 GMT+08:00 2018

所以  date->String 時候如果當前日期所在的周跨年則YYYY表示下一年;

        String->Date 時候YYYY不符合上述規則

2、DD和dd的區別

public static void main(String[] args) {
	String time1 = new SimpleDateFormat(" yyyy-MM-dd HH_mm_ss").format(new Date());
	String time2 = new SimpleDateFormat(" yyyy-MM-DD HH_mm_ss").format(new Date());
	System.out.println(time1);
	System.out.println(time2);
}
 2019-12-30 10_27_33
 2019-12-364 10_27_33

*解析:DD在Java中指的是當前日期在本年中的第幾天,12月30日爲2019年中的第364天所以打印出來爲364

 

3、MM和mm的區別

MM是指月份  mm指的是分,給小夥伴們做一個測試

public static void main(String[] args) {
	String time1 = new SimpleDateFormat(" yyyy-MM-dd HH_mm_ss").format(new Date());
	String time2 = new SimpleDateFormat(" yyyy-mm-dd HH_mm_ss").format(new Date());
	System.out.println(time1);
	System.out.println(time2);
}
 2019-12-30 10_33_32
 2019-33-30 10_33_32

可以使用  但是個人感覺沒有意義

4、HH和hh的區別

HH表示的是24小時制,hh表示的是12小時制

 

5、SS和ss的區別

public static void main(String[] args) {
	String time1 = new SimpleDateFormat(" yyyy-MM-dd HH_mm_ss_SSS").format(new Date());
	String time2 = new SimpleDateFormat(" yyyy-MM-dd hh_mm_ss_SSS").format(new Date());
	System.out.println(time1);
	System.out.println(time2);
}
 2019-12-30 10_54_33_541
 2019-12-30 10_54_33_542

**解析:SSS表示的是毫秒 ss表示的是秒

 

6、其他

 

w  年中的週數  Number  27
W  月份中的週數  Number  2
F  月份中的星期  Number  2
E  星期中的天數  Text  Tuesday; Tue
a  Am/pm 標記  Text  PM
H  一天中的小時數(0-23)  Number  0
k  一天中的小時數(1-24)  Number  24
K am/pm 中的小時數(0-11) Number 0
h am/pm 中的小時數(1-12) Number 12
z  時區  General time zone  Pacific Standard Time; PST; GMT-08:00
Z  時區  RFC 822 time zone  -0800

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章