Java 日期格式分析异常-“;EEE MMM dd HH:mm:ss Z yyyy“;
我遇到了日期解析问题示例日期:Java 日期格式分析异常-“;EEE MMM dd HH:mm:ss Z yyyy“;,java,date,simpledateformat,Java,Date,Simpledateformat,我遇到了日期解析问题示例日期: 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 我尝试: 采取: java.text.ParseException:无法解析的日期:“2013年1
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
我尝试:
采取:
java.text.ParseException:无法解析的日期:“2013年10月16日星期三00:00:00 CEST”
好的,我改为工作:
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");
您可以使用
Locale.ENGLISH
来决定,而不是使用您和其他人通常不知道的Locale.default
,因为我看到您的字符串日期是英文格式的。如果您在其他国家,格式将不同
下面是我的示例代码:
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();
}
}
结果将是:日期:周三10月16日05:00:00 ICT 2013
。或者,您可以使用日期字段来决定打印日期的哪一部分
希望得到以下帮助:)我认为最初的异常是由于您的格式中的
Z
。
Per:
很可能你想用小写字母
z
我假设你的Locale.getDefault()
是pl
,因为你好像在波兰
因此,日期字符串中的英语单词会导致无法解析的日期
合适的波兰日期字符串
如下
"Wt paź 16 00:00:00 -0500 2013"
否则,请将您的
Locale
更改为Locale.ENGLISH
,以便SimpleDateFormat
对象可以用英文单词解析String
日期。ParseException我猜我会运行您的代码。没有异常..请附加异常堆栈跟踪..仅供参考,非常麻烦的旧日期时间类,例如,和java.text.simpleDataFormat
现在被内置在Java8和更高版本中的类所取代。请参阅。文档
链接已断。@Rao-修复了链接:)感谢您的关注和快速修复。谢谢。
Z Time zone RFC 822 time zone -0800
"Wt paź 16 00:00:00 -0500 2013"