date格式parsingexception – “EEE MMM dd HH:mm:ss Z yyyy”

我得到dateparsing示例date的问题:

SimpleDateFormat parserSDF=new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.getDefault()); parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013"); 

得到exception

Exacly我想parsing这个格式的date为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:不可parsing的date:“星期三10月16日00:00:00 CEST 2013”


好的,我转到工作:

 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因为你似乎在波兰。

datestring中的英文单词因此会导致无法parsing的date。

一个适当的波兰dateString将是类似的东西

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

否则,请将您的Locale更改为Locale.ENGLISH以便SimpleDateFormat对象可以用英文单词parsingStringdate。

而不是使用Locale.default ,你和其他人通常不知道哪个默认值,你可以通过使用locale.ENGLISH来决定,因为我看到你的stringdate是英文格式。 如果你在其他国家,格式会有所不同。

这是我的示例代码:

 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(); } } 

结果将是: date: Wed Oct 16 05:00:00 ICT 2013 。 或者,您可以使用其字段来决定打印此date的哪一部分。

希望这个帮助:)

我认为最初的例外是由于Z格式。 每个文档 :

 Z Time zone RFC 822 time zone -0800 

很可能你打算使用小写字母z