new Date()導致日期增加了一天


問題是:將字符串 "Sun Nov 12 14:00:00 CST 2017"  轉成Date類型

有一個簡單的方法是直接使用new Date(),但是這個方法對於某些日期的計算,會導致多增加一天

 

查看以下代碼

String ans ="Sun Nov 12 14:00:00 CST 2017";
Date date = new Date(ans);
System.out.println(date);

輸出結果是

Mon Nov 13 04:00:00 CST 2017

 

new Date(ans)這個方法,已經是不推薦的方法了,推薦使用 DateFormat.parse(String s)代替,關鍵就是如何設置格式化的格式了

 

Java格式化CST日期時間

日期格式化的格式為 "EEE MMM dd HH:mm:ss zzz yyyy"
CST是美國中部標准時間,所以還使用Locale.US

最終設置的日期格式化應該為:SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);

String ans ="Sun Nov 12 14:00:00 CST 2017";
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
Date date = dateFormat.parse(ans);
System.out.println(date);

 

附,日期格式化的規則


注:格式化字符串中如果使用字符‘A’-‘Z’、‘a’-‘z’,需要使用單引號把它們括起來


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM