【发布时间】:2014-05-26 07:26:34
【问题描述】:
我发现这篇文章可以解释我的问题的一半。这就是为什么我的 AM 符号不是我所期望的。 Unable to parse DateTime-string with AM/PM marker
SimpleDateFormat sdfBefore = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a", Locale.US);
// I tried format with 2 [a] as well , MM/dd/yyyy hh:mm:ss aa
//SimpleDateFormat sdfAfter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
System.out.println("Debug: test6 = "+sdfBefore.format(System.currentTimeMillis()));
System.out.println("Debug: test7 = "+sdfBefore.parse("05/26/2014 06:57:07 a.m."));
System.out.println("Debug: test8 = "+sdfBefore.parse("05/26/2014 06:57:08 A.M."));
System.out.println("Debug: test9 = "+sdfBefore.parse("05/26/2014 06:57:09 AM"));
这是我的结果:
Debug: test6 = 05/26/2014 07:30:01 a.m.
Debug: test7 = Mon May 26 06:57:07 GMT 2014
Debug: test8 = Mon May 26 06:57:08 GMT 2014
Error: java.text.ParseException: invalid Date syntax in "05/26/2014 06:57:09 AM"
到目前为止我尝试过的语言环境:
German = vorm.
US/ENGLISH/<default>/Canada = a.m.
chinese = ? <--probably cause my sonsole doesn't support it
我在网上找到的每个示例都表明英语/美国语言环境应该是符号“AM”和“PM”的正确语言环境
有人注意到这里有什么问题吗?
【问题讨论】:
-
当我尝试这个时,我得到结果“调试:test6 = 05/26/2014 09:36:56 AM”和 Unparseable date “05/26/2014 06:57:07 a.m.” (这似乎是正确的,因为“a.m.”不是有效的 AM/PM 标记。您使用哪个 java 版本?
-
1.5 版,我目前正在研究 DateFormatSymbols.setAmPmStrings(newAmpms);看看有没有帮助..
-
没有得到您正在寻找的确切问题?可以再解释一下吗?
-
@JackyCheng 如果对这些符号进行了调整,也许你应该看看项目配置,因为这不是正常配置。
-
@UweAllner 谢谢,我去看看。我也觉得这很奇怪。
标签: java locale simpledateformat