解析字符串通过DateTimeFormatter.forPattern

问题描述:

我有一个字符串:解析字符串通过DateTimeFormatter.forPattern

Sun May 15 00:00:00 IST 2011 

现在,如果我想通过模式解析它变成乔达日期时间:

EEE MMM dd 00:00:00 z yyyy 

我越来越:

java.lang.IllegalArgumentException: Invalid format: "Sun May 15 00:00:00 IST 2011" is malformed at " 00:00:00 IST 2011" 

但是具有相同模式的SimpleDateFormat可以将String解析为java.util.Date。我做错了什么?

感谢和问候。

+0

你确定在使用'SimpleDateFormat'时没有指定'HH:mm:ss'吗? – asgs 2011-05-16 10:56:09

+0

@asgs是这两个格式化程序的模式相同。 – 2011-05-16 11:20:35

JODA不支持分析时区名称。

API documentation

区域名称:时区名称( 'Z')无法解析。

+0

谢谢。因此,解析该字符串,我应该将它解析为Date by SimpleDateFormat,然后从该日期创建DateTime的实例? – 2011-05-16 11:15:19

+2

最好的方法可能是更改时间戳字符串的格式。问题在于时区名称是不明确的,例如, “IST”用于爱尔兰夏令时,以色列标准时间和印度标准时间。即使你使用java.util.SimpleDateFromat,你也不能确定你真的得到了你期望的。 – jarnbjo 2011-05-16 11:23:16