2012-08-16 36 views
0

我試圖找到一個給定的字符串包含時間的正確模式。FormatterPattern的TimeString與JodaTime

這裏是我的字符串和模式最近我tryed:

String time = "Sun Jul 01 2012 11:25:57 GMT+0200 (CEST)"; 
DateTimeFormatter formatter = DateTimeFormat.forPattern("EEE MMM dd yyyy HH:mm:ss 'GMT'ZZ '(CEST)'"); 
DateTime date = formatter.parseDateTime(time); 

我讀了這字符使用,但它仍然沒有完全清楚,我怎麼給我TIMESTRING匹配的文檔。

如果你們中的一個人可以幫我解決這個問題,那就太棒了!

Here's異常i'm越來越:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "Sun Jul 01 2012 11:25:57 GMT+020..." 
    at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:866) 
    at Main.main(Main.java:10) 

回答

1

AFAIK jodatime無法解析時區的名字,因爲他們是不明確的。您可以通過以下方式解析你的字符串:

"EE MMM dd yyyy HH:mm:ss 'GMT'ZZ '(CEST)'" 

一個跳過的時區的名稱,這應該是很好,因爲你也有時間區偏移量(+0200)。

+0

很高興知道時區不能被解析,不幸的是即使最後一部分被切斷,我也得到了一個異常。 – Ostkontentitan 2012-08-16 10:21:40

+1

@Konstantin我只是用你的輸入字符串嘗試了這個模式,然後解析。這可能是一個語言環境問題 - 嘗試'formatter.withLocale(Locale.US).parseDateTime(time);'例如。 – assylias 2012-08-16 10:24:14

+0

謝謝你做到了! – Ostkontentitan 2012-08-16 10:27:06