SimpleDateFormat - 无法解析的日期

Dom*_*iik 5 java android simpledateformat

我尝试将String转换为Date.

这是我的代码:

    SimpleDateFormat format =  new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
    Date date = format.parse("Sun Apr 08 16:37:00 CEST 2012");
Run Code Online (Sandbox Code Playgroud)

我得到例外:

04-08 13:51:36.536:W/System.err(8005):java.text.ParseException:Unparseable date:"Sun Apr 08 16:37:00 CEST 2012".

格式似乎没问题.我错过了什么吗?

谢谢.

Bri*_*ach 7

您发布的代码不是您的实际代码,或者您有区域设置问题.它适用于具有美国语言环境的Sun Oracle Java 1.6.

将您的代码更改为:

SimpleDateFormat format =  
    new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
Run Code Online (Sandbox Code Playgroud)


Mic*_*zka 5

SimpleDateFormat是特定于语言环境的.至少是模式E并且M是特定于语言环境的,因为例如"Sun"或"Sunday"将与Locale.GERMAN或Locale.FRENCH等不匹配.您最好指定使用的Locale

SimpleDateFormat format =  new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
Run Code Online (Sandbox Code Playgroud)

或使用不是特定于语言环境的格式.


小智 -1

看起来“Sun”未被识别。尝试这个:

date = format.parse("Sunday Apr 08 16:37:00 CEST 2012");
Run Code Online (Sandbox Code Playgroud)

对我有用。