2015-11-03 124 views
3

我有一个奇怪的问题,当我试图解析这个日期:Tue Nov 03 10:50:16 CET 2015使用Java SimpleDateFormat,它会抛出一个异常,因为在那里的“星期二”。
我的代码是:Java日期不解析日

String date = "Tue Nov 03 10:50:16 CET 2015"; 
Date parsedDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy").parse(date); 

会抛出该异常:java.text.ParseException: Unparseable date: "Tue Nov 03 10:50:16 CET 2015"

我试图调试它,这是什么归结为:

String date = "Tue"; 
Date parsedDate = new SimpleDateFormat("EEE").parse(date); 

会抛出同一类型的例外。 (我也尝试过用一个'E')。我认为这很奇怪,因为文档告诉我这是应该如何使用的。来源:https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

解决方案比欢迎!
谢谢,卢卡

更新:解析点是解析MANIFEST.getMainAttributes().getValue("Created-On");

+10

你的语言环境是什么?文本的日期和月份表示取决于此。 – cheffe

+2

尝试将“en-us”区域设置传递给构造函数以锁定该部分。 – Thilo

+2

你可以尝试@cheffe建议,像这个'SimpleDateFormat(“EEE”,Locale.ENGLISH)''。顺便说一下,我用你的字符串测试了你的代码,它工作正常。语言在我的系统中英语 –

回答

1

感谢cheffe我想出了解决方案:

Date parsedDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(date); 

哪些工作! :)