为什么这个SimpleDateFormat不能解析这个日期字符串?
SimpleDateFormat:
SimpleDateFormat pdf = new SimpleDateFormat("MM dd yyyy hh:mm:ss:SSSaa");
pdf.parse("Mar 30 2010 5:27:40:140PM");
引发的例外情况pdf.parse("Mar 30 2010 5:27:40:140PM");
:
java.text.ParseException: Unparseable date: "Mar 30 2010 5:27:40:140PM"
有任何想法吗?
编辑:感谢快速回答。 你们都是对的,我只是错过了SimpleDateFormat文档中的一个关键句子 – 我应该把它称为一天。
来自SimpleDateFormat javadocs :
月份:如果模式字母的数量为3或更多,则将月份解释为文本; 否则,它被解释为一个数字。
尝试使用像“MMM dd yyyy”这样的模式
首先,由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"));
结果(我在格林尼治标准时间4点没有DST):
Tue Mar 30 17:27:40 BOT 2010
另请参阅java.text.SimpleDateFormat
javadoc 。
为什么你称它为pdf
超出我的范围,所以我将其重命名为sdf
;)
MM代表数字月份。 使用MMM。