問題是:將字符串 "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’,需要使用單引號把它們括起來