西班牙语java.time.format.DateTimeParseException关于时间字符串
我试图使用Java8DateTimeFormatter类来解析西班牙语的时间字符串。经过几个小时的搜索,我找不到任何提示。返回的错误为: java.time.format.DateTimeParseException:无法在索引4处分析文本“905 PM AST MARTES 7 AGOSTO 2018” 这似乎是“PM”元素的开始 以下是相关代码:西班牙语java.time.format.DateTimeParseException关于时间字符串,java,locale,Java,Locale,我试图使用Java8DateTimeFormatter类来解析西班牙语的时间字符串。经过几个小时的搜索,我找不到任何提示。返回的错误为: java.time.format.DateTimeParseException:无法在索引4处分析文本“905 PM AST MARTES 7 AGOSTO 2018” 这似乎是“PM”元素的开始 以下是相关代码: DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder(); builde
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.parseCaseInsensitive();
builder.appendPattern("hmm a z EEE d MMM yyyy");
DateTimeFormatter formatter = builder.toFormatter(new Locale("es", "PR"));
String spanishDate = "905 PM AST MARTES 7 AGOSTO 2018"
Instant issuanceInstant = Instant.from(formatter.parse(spanishDate));
我尝试过用不同的格式,但这是气象消息上使用的标准格式,我需要对其进行解析。任何帮助都将不胜感激。
EEE
和MMM
是缩写形式。完整表格需要使用4个字母:
hmm a z EEEE d MMMM yyyy
在恢复到Java8之后,这个bug就消失了。谢谢大家的帮助!我将对此提出报告。谢谢你的建议。它仍然有相同的错误,但一旦解决了,这可能是下一个错误。我想知道是否有特定于所涉及的机器的东西?我只是在使用标准的Java 8库。@MattDavis什么版本?有趣的是,如果我删除PM,改为24小时制,并从建议的格式字符串中删除“a”,它就可以工作了。生成器。追加模式(“HHmm z EEEE d MMMM yyyy”);字符串spanishDate=“2105 AST MARTES 7 AGOSTO 2018”;看来我说错了。机器已经更新,并且正在使用Java10库。jre-10.0.2FYI,生成器方法是可链接的。你不需要为每一个单独的语句。你检查过你的语言环境中的am/pm符号吗?有可能它们不是AM和PM,在这种情况下PM可能不被理解。