問題描述
使用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