12小时格式的java SimpleDataFormat parseexception

57hvy0tb  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(244)

这个问题在这里已经有答案了

java.text.parseexception:无法解析的日期:“01:19 pm”(6个答案)
java-无法解析的日期(3个答案)
上个月关门了。
尝试将日期字符串解析为java.util.date时出现异常。
这就是我要做的,

String format = "yyyy-MM-dd hh:mm a";
String strDateTime = "2016-03-04 11:30 am";

SimpleDateFormat sdformat = new SimpleDateFormat(format);
        try {
            Date date = sdformat.parse(strDateTime);
            System.out.println(sdformat.format(date));
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

得到这个了吗

java.text.ParseException: Unparseable date: "2016-03-04 11:30 am"
    at java.base/java.text.DateFormat.parse(DateFormat.java:396)
    at testing.MainClass.main(MainClass.java:18)

我已经这样做了很多次,而且模式看起来是正确的。可能我没有看到我做错了什么,我使用的是Java8,我在eclipse中的执行环境也是Java8。直到今天,这个代码仍然运行良好。
但是,如果我将日期字符串更改为a.m.=> "2016-03-04 11:30 a.m." 成功解析输出: 2016-03-04 11:30 a.m. 此行为与localdatetime相同。

java.time.format.DateTimeParseException: Text '2016-03-04 11:30 am' could not be parsed at index 17
    at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2050)
    at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1952)
    at java.base/java.time.LocalDateTime.parse(LocalDateTime.java:493)
    at testing.MainClass.main(MainClass.java:27)

所有的例子 SimpleDateFormat 我在网上看到只使用“上午/下午”而不是“上午/下午”。我在这里可能做错了什么-谢谢

dz6r00yl

dz6r00yl1#

我相信这是一个地区问题-在 en_US 您的代码工作成功。您可以使用如下循环打印与每个区域设置关联的am/pm标记文本:

for (Locale locale : SimpleDateFormat.getAvailableLocales()) {
    SimpleDateFormat sdformat = new SimpleDateFormat(format, locale);
    String[] amPmStrings = sdformat.getDateFormatSymbols().getAmPmStrings();
    System.out.println("Locale " + locale + ": " + amPmStrings[0] + ", " + amPmStrings[1]);
}

这表明,例如 en_CA 区域设置使用您描述的格式:

Locale en_CA: a.m., p.m.

如果您想使用'am'和'pm'(或者'am'和'pm'-它看起来不区分大小写),您可以强制 en_US 创建格式化程序时的区域设置:

SimpleDateFormat sdformat = new SimpleDateFormat(format, Locale.US);

相关问题