【发布时间】:2020-02-26 14:07:44
【问题描述】:
当我运行以下命令时:
String s2 = "07:05:45PM";
LocalTime time = LocalTime.parse(s2, DateTimeFormatter.ofPattern("HH:mm:ssa"));
我明白了:
Exception in thread "main" java.time.format.DateTimeParseException:
Text '07:05:45PM' could not be parsed at index 8
它似乎不像 AM/PM 指示符,但据我发现,这应该可以。我做错了什么?
【问题讨论】:
-
你在哪个区域运行这个?由于您的代码没有指定语言环境,因此它将使用 JVM 的默认语言环境(这反过来将取自您当前用户或机器的默认语言环境)。
HH也适用于 24 小时制,如果您还想包含a,则需要使用hh。 -
好的,看来我需要使用 'h' 并指定允许这种解析的语言环境。 (注意,我的默认语言环境是 'en-GB') String s2 = "07:05:45PM"; LocalTime 时间 = LocalTime .parse(s2, DateTimeFormatter.ofPattern("hh:mm:ssa").withLocale(Locale.US)); return time.format(DateTimeFormatter.ISO_LOCAL_TIME);
-
在接受任何答案之前,我必须质疑版主投票关闭此问题作为重复问题的决定。引用的问题没有提及正在运行的语言环境,这是本实例中的关键细节。