我要格式化的字符串如下所示: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,但似乎找不到我做错了的地方。
有什么建议么?
一种可能是您的默认设置Locale的AM / PM符号不同。构造日期格式时,Locale除非您确实要使用系统的默认值Locale,否则应始终提供一个,例如:
SimpleDateFormat sdf = new SimpleDateFormat("M/d/yy h:mm:ss a", Locale.US)