日期格式解析例外-“ EEE MMM dd HH:mm:ss Z yyyy”

问题描述

我将假设Locale.getDefault()对您来说是pl-PL因为您似乎在波兰。

因此,日期字符串中的英语单词会导致无法解析的日期。

一个合适的波兰日期String可能是这样的

"Wt paź 16 00:00:00 -0500 2013"

否则,将更Locale改为,Locale.ENGLISH以便SimpleDateFormat对象可以String用英语单词解析日期。

该日期类主要是过时了,所以我建议不要使用。

也许考虑使用类似于ZonedDateTime类的方法解决您的问题。

如果您只需要等待5个小时String,就可以使用以下方法

String time = "Fri Jun 22 09:29:29 NPT 2018";
DateTimeFormatter format = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz uuuu");
ZonedDateTime zdt = ZonedDateTime.parse(time, format);
System.out.println(zdt.minusHours(5));

解决方法

我在日期解析示例日期上遇到了问题:

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:无法解析的日期:“ 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");

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”