tangguo

无法使用AM / PM标记解析DateTime字符串

java

我要格式化的字符串如下所示:String datetime =“ 9/1/10 11:34:35 AM”

SimpleDateFormat的以下模式有效:

SimpleDateFormat sdf = SimpleDateFormat("M/d/yy h:mm:ss");
Date d = sdf.parse(datetime);
System.out.println(d);

Output> [Wed Sep 01 11:34:35 CEST 2010]

但是,我还需要解析AM / PM标记,当我将其添加到模式中时会收到异常。

无效的模式:

SimpleDateFormat sdf = SimpleDateFormat("M/d/yy h:mm:ss a");

我也尝试过与此相同的例外:

SimpleDateFormat sdf = SimpleDateFormat("M/d/yy h:mm:ss aa");

例外:

java.text.ParseException: Unparseable date: "9/1/10 11:34:35 AM"

我已经通过http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html#text浏览了API,但似乎找不到我做错了的地方。

有什么建议么?


阅读 309

收藏
2020-11-20

共1个答案

小编典典

一种可能是您的默认设置Locale的AM / PM符号不同。构造日期格式时,Locale除非您确实要使用系统的默认值Locale,否则应始终提供一个,例如:

SimpleDateFormat sdf = new SimpleDateFormat("M/d/yy h:mm:ss a", Locale.US)
2020-11-20