天天看點

詳細介紹JAVA中日期 yyyy-MM-dd HH:mm:ss

文章目錄

    • 問題描述
    • 災難現場還原
    • 原因
    • 分析說明各字段的含義
    • 何為”前導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