我想解析一個日期將其轉換爲時代。我嘗試了similar question here沒有成功的解決方案:Java上的String java.time.format.DateTimeParseException
String date = "Jun 4 2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("LLL dd yyyy").withLocale(Locale.ENGLISH);
LocalDateTime ldt = LocalDateTime.parse(date, formatter);
System.out.println(date+" "+ldt.toEpochSecond(ZoneOffset.UTC));
我也得到Exception in thread "main" java.time.format.DateTimeParseException: Text 'Jun 4 2015' could not be parsed at index 0
即使我相當肯定,我的正則表達式。我在這裏錯過了什麼?
編輯:
繼意見,我改變了LocalDateTime到LOCALDATE的,但繼續得到同樣的錯誤:
String date = "Jun 4 2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM d yyyy").withLocale(Locale.ENGLISH);
LocalDate ldt = LocalDate.parse(date, formatter);
http://stackoverflow.com/questions/30518954/datetimeformatter-month-pattern-letter-l-fails – Reimeus
我用「MMM」取代了「LLL」並獲得了相同的結果。 –
使用MMM是不夠的。你在那裏有一個LocalDate,而不是LocalDateTime:根本沒有時間。將其解析爲LocalDate,然後選擇要將其轉換爲LocalDateTime的時間。 –