【发布时间】:2016-04-17 11:38:20
【问题描述】:
我正在尝试使用 Java8 LocalDateTime 解析日期字符串,但没有成功。
例外情况是:DateTimeParseException: Text '28-APR-2015 01:25:00 PM' could not be parsed at index 3
要解析的字符串是:28-APR-2015 01:25:00 PM,我目前使用的模式是 dd-LLL-yyyy hh:mm:ss a
我哪里错了?
谢谢
添加示例代码:
String text = "28-APR-2015 01:25:00 PM";
DateTimeFormatter fromatter = DateTimeFormatter.ofPattern("dd-LLL-yyyy hh:mm:ss a");
try {
String out = LocalDateTime.parse(text, formatter)
System.out.println(out);
} catch (DateTimeParseException e) {
e.printStackTrace();
}
使用@Florin 的响应解决了:
DateTimeFormatter tertiaryFormatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive().parseLenient().appendPattern("dd-LLL-yyyy hh:mm:ss a").toFormatter();
【问题讨论】:
-
您能否提供一个简短但完整的示例来说明问题?
-
我设法重现了这个;我认为您想要
MMM而不是LLL(尽管文档不清楚L的含义);但这是区分大小写的,所以你仍然需要Apr而不是APR。仍在研究如何使其不区分大小写... -
“没有任何成功”是什么意思?你有什么错误吗?
-
您可以创建一个更宽松的 DateTimeFormatter 类,而不是依赖默认值。例如: DateTimeFormatter formatter = new DateTimeFormatterBuilder() .parseCaseInsensitive() .parseLenient() .appendPattern("dd-LLL-yyyy hh:mm:ss a") .toFormatter()
标签: java parsing datetime format