我遇到了日期解析示例日期的问题:
SimpleDateFormat parserSDF=new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.getDefault());
parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
得到例外
我希望将此格式日期解析为yyyy-MM-dd 我试试:
SimpleDateFormat parserSDF = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
采取: java.text.ParseException:Unparseable date:“Wed Oct 16 00:00:00 CEST 2013”
好的,我改变并工作:
SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH);
Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
答案 0 :(得分:16)
我将假设Locale.getDefault()
对你来说是pl-PL
,因为你似乎在波兰。
日期字符串中的英语单词会导致日期不可解析。
适当的波兰语日期String
类似于
"Wt paź 16 00:00:00 -0500 2013"
否则,请将Locale
更改为Locale.ENGLISH
,以便SimpleDateFormat
对象可以使用英语单词解析String
个日期。
答案 1 :(得分:6)
您可以使用Locale.default
来决定使用locale.ENGLISH
而不是使用public static void main(String[] args) {
try {
SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
System.out.println("date: " + date.toString());
} catch (ParseException ex) {
ex.printStackTrace();
}
}
,而您和其他人通常不知道哪个默认值,因为我看到您的字符串日期是英文格式。如果您在其他国家/地区,则格式会有所不同。
这是我的示例代码:
date: Wed Oct 16 05:00:00 ICT 2013
结果将是:{{1}}。或者您可以使用其字段决定要打印此日期的哪一部分。
希望这有帮助:)
答案 2 :(得分:4)