我在日期解析示例日期上遇到了问题:
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");
我将假设Locale.getDefault()对您来说是pl-PL因为您似乎在波兰。
Locale.getDefault()
因此,日期字符串中的英语单词会导致无法解析的日期。
一个合适的波兰日期String可能是这样的
"Wt paź 16 00:00:00 -0500 2013"
否则,将更Locale改为,Locale.ENGLISH以便SimpleDateFormat对象可以String用英语单词解析日期。
Locale
Locale.ENGLISH
SimpleDateFormat
该日期类主要是过时了,所以我建议不要使用。
也许考虑使用类似于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));