use*_*688 4 java datetime datetime-parsing java-8 java-time
我有以下代码抛出DateTimeParseException:
String dateString = "Jul 20 09:32:46"
DateTimeFormatter formatter=DateTimeFormatter.ofPattern("L d HH:mm:ss");
return ZonedDateTime.parse(dateString, formatter);
Run Code Online (Sandbox Code Playgroud)
根据文档,您将观察到这Jul是角色的示例L.
但是,异常消息是:
java.time.format.DateTimeParseException:无法在索引0处解析文本"Jul"
我错过了什么?
你有一些问题:
MMM而不是L(这里解释原因).LocalDateTime如果您不想使用时区,则可以使用a .以下是一些替代方案:
随着时区:
String dateString = "Jul 20 2018 09:32:46+0000";
DateTimeFormatter formatter= DateTimeFormatter.ofPattern("MMM dd y H:mm:ssZ");
return ZonedDateTime.parse(dateString, formatter);
Run Code Online (Sandbox Code Playgroud)
没有时区:
String dateString = "Jul 20 2018 09:32:46";
DateTimeFormatter formatter= DateTimeFormatter.ofPattern("MMM dd y H:mm:ss");
return LocalDateTime.parse(dateString, formatter);
Run Code Online (Sandbox Code Playgroud)