hh:mmaa格式的java解析简单时间
DateFormat formatter = new SimpleDateFormat("hh:mmaa");
formatter.parse("01:20pm")
我试图以01:20pm的格式解析时间。如果运行上述代码,则会出现以下异常:
java.text.ParseException: Unparseable date: "01:20pm"
at java.text.DateFormat.parse(DateFormat.java:366)
至于我在SimpleDataFormat构造函数中使用的格式,我没有发现任何错误。这里出了什么问题
# 1 楼答案
Java中的数字和日期解析使用区域设置来指定特定于区域设置的符号。在这种情况下,被拒绝的主要是
pm
值为了确认这一点,下面是一段代码,用于测试VM中所有可用的区域设置
对于不起作用的区域设置,我很想知道为什么,所以我没有解析时间,而是格式化了一个有效的时间。必须启用UTF-8输出,但这很有趣
真正有趣的是,除了美国变体(
es_US
)之外,所有的西班牙语(es
)语言环境都很好。嗯输出
# 2 楼答案
您的系统区域设置不能识别
AM/PM
。使用Locale
这样做。比如或者,在Java 8+中,使用新的
java.time
API,如