问题描述
我将假设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");