我想將日期格式從Sun Apr 10 07:05:45 MDT 2017
格式化爲2017-04-10T07:05:45.24Z
。日期格式解析錯誤Java
我使用了以下內容:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE-LLL-dd H:mm:sszuuuu");
formatter.parse(date);
日期是在上面給出的格式。
但我得到索引3的解析錯誤
我想將日期格式從Sun Apr 10 07:05:45 MDT 2017
格式化爲2017-04-10T07:05:45.24Z
。日期格式解析錯誤Java
我使用了以下內容:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE-LLL-dd H:mm:sszuuuu");
formatter.parse(date);
日期是在上面給出的格式。
但我得到索引3的解析錯誤
什麼是「L」?嘗試月份縮寫「MMM」:
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("EEE-MMM-dd H:mm:sszuuuu");
從DateTimeFormatter文檔:M/L月份數/文本7; 07; 7月;七月; J。但我嘗試MMM,仍然得到解析錯誤 – Vic
存在多個問題。正確的模式是"EEE MMM dd HH:mm:ss z uuuu"
見本示例code run live at IdeOne.com。
String input = "Mon Apr 10 07:05:45 MDT 2017" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z uuuu" , Locale.US);
ZonedDateTime zdt = ZonedDateTime.parse(input , f);
zdt.toString():2017-04-10T07:05:45-06:00 [美國/丹佛]
好的,這裏是我改變了:新日期是'Fri Apr 07 08:21:19 MDT 2017'並調整格式化爲'「EEE MM dd HH:mm:ss z uuuu「' – Vic
還有一個提示:總是指定一個'Locale'。用於確定(a)用於翻譯日期名稱,月份名稱等的人類語言,以及(b)用於確定縮寫,大寫,標點符號,分隔符等問題的文化規範。 –
儘量避免在第一位置,如果在這樣的麻煩的格式所有可能的。避免使用3-4字母的僞時區縮寫,例如「MDT」或「EST」或「IST」,因爲它們*不是真正的時區,不是標準化的,甚至不是唯一的(!)。以「大陸/地區」格式指定[適當時區名稱](https://en.wikipedia.org/wiki/List_of_tz_zones_by_name),例如['America/Montreal'](https://en.wikipedia .org/wiki/America/Montreal),['Africa/Casablanca'](https://en.wikipedia.org/wiki/Africa/Casablanca)或'America/Denver'。 –