文章目錄
-
- 問題描述
- 災難現場還原
- 原因
- 分析說明各字段的含義
- 何為”前導0”
- 參考
問題描述
使用new SimpleDateFormat(“yyyy-MM-DD HH:mm:ss”).parse(“2019-05-27 22:47:31”);構造出來的時間與預期的不符。
災難現場還原
Date startDate = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss").parse("2019-05-27 22:47:31");
列印出來的結果卻是2019-01-27 22:47:31
原因
yyyy-MM-DD應該改為yyyy-MM-dd。
分析說明各字段的含義
字段 | 說明 |
---|---|
yyyy或YYYY | 年。注意這個大小寫是不同的!!!y 是Year, Y 表示的是Week year。 經過試驗,得出的結果如下:Week year 意思是當天所在的周屬于的年份,一周從周日開始,周六結束,隻要本周跨年,那麼這周就算入下一年。 |
MM | 月。M大寫是為了區分“月”與“分” |
dd | 日。必須小寫,大寫有時會出現本文上面出現的詭異bug |
HH或hh或H | 時。大小寫不同!!!小寫的h是12小時制,大寫的H是24小時制。HH和H差別在于是否有前導0 |
mm或者m | 分。mm與m的差別為是否有前導零 |
ss或者s | 秒。ss和s的差別為是否有前導零 |
何為”前導0”
比如淩晨1點2分,HH:mm顯示為01:02,H:m顯示為1:2。
參考
https://blog.csdn.net/bai120552717/article/details/79375697
http://www.mamicode.com/info-detail-2055944.html