2011-05-16 53 views
1

我有一個字符串:解析字符串通過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

回答

2

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