简单日期格式:
SimpleDateFormat pdf = new SimpleDateFormat("MM dd yyyy hh:mm:ss:SSSaa");
pdf.parse("Mar 30 2010 5:27:40:140PM");
抛出的异常:
java.text.ParseException: Unparseable date: "Mar 30 2010 5:27:40:140PM"
有什么想法吗?
编辑:感谢您的快速回答。你们都是对的,我只是错过了 SimpleDateFormat 文档中的一个关键句子 - 我应该收工了。
最佳答案
首先,三个字符的月份将由 MMM
表示。其次,一位两位数的小时将由 h
表示。第三,Mar
好像是英文的,你需要提供一个Locale.ENGLISH
,否则它在不同默认语言环境的机器上不能正常工作。
以下作品:
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy h:mm:ss:SSSa", Locale.ENGLISH);
System.out.println(sdf.parse("Mar 30 2010 5:27:40:140PM"));
结果(我在没有 DST 的 GMT-4):
Tue Mar 30 17:27:40 BOT 2010
另见 java.text.SimpleDateFormat
javadoc .
为什么你叫它 pdf
我不明白,所以我把它重命名为 sdf
;)
关于java - 为什么这个 SimpleDateFormat 不能解析这个日期字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2603638/