Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
西班牙语java.time.format.DateTimeParseException关于时间字符串_Java_Locale - Fatal编程技术网

西班牙语java.time.format.DateTimeParseException关于时间字符串

西班牙语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

我试图使用Java8DateTimeFormatter类来解析西班牙语的时间字符串。经过几个小时的搜索,我找不到任何提示。返回的错误为:

java.time.format.DateTimeParseException:无法在索引4处分析文本“905 PM AST MARTES 7 AGOSTO 2018”

这似乎是“PM”元素的开始

以下是相关代码:

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可能不被理解。