
看完了來看看下面這段代碼解釋:
/**
說明:日期格式化時, yyyy 表示當天所在的年,而大寫的 YYYY 代表是 week in which year,意思是當天所在的周屬于的年份,
一周從周日開始,周六結束,只要本周跨年,返回的 YYYY 就是下一年。
另外需要注意:
表示月份是大寫的 M
表示分鐘則是小寫的 m
24 小時制的是大寫的 H
12 小時制的則是小寫的 h
*/
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String timeStr = "2019-01-01 00:00:00";
LocalDateTime dateTime = LocalDateTime.parse(timeStr, formatter);
System.out.println(dateTime + "\n" + dateTime.toLocalDate() + "\n" + dateTime.toLocalTime());
輸出
2019-01-01T00:00
2019-01-01
00:00
也就是說:年份如果用 Y 會是這周的年份,y 才是標準的年份。這一點官方文檔沒說明,所以還是自己注意點吧,以后轉換日期格式的時候記得還是用 “yyyy-MM-dd” 這種格式吧,避免出現(xiàn)這種情況衍生的 bug。
規(guī)范的日期格式:
- 距離現(xiàn)在時間跨年,顯示格式:
中文:yyyy/mm/dd (2020年06月01日)
英文:mm dd,yyyy (Jun 1,2020)