2013-10-15 32 views
0
String t = s.replaceAll(".*;\\s+", ""); //Output: Tue Mar 5 08:30:20 2013 +0000 
DateFormat parser = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z",Locale.ENGLISH); 
Date time = parser.parse(t); 

這是我當我使用java.util.Date,但我有時會出現問題,當我比較2日期對象使用的,我試着使用日曆,但無濟於事,然後我偶然發現了JodaTime。所以之後,我想我會嘗試使用他們的DATETIME格式,看看如何將工作,但我得到:從java.util.time要jodatime

java.lang.IllegalArgumentException異常:無效的格式爲:「星期二3月5日8時30分20秒2013 +0000 「

,當我嘗試將字符串轉換爲使用此代碼datetime格式:

String t = s.replaceAll(".*;\\s+", ""); //Output: Tue Mar 5 08:30:20 2013 +0000 
DateTimeFormatter parser = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss yyyy Z"); 
DateTime time = DateTime.parse(t, parser); 

我在做什麼錯?據我可以看到我使用的模式是相同的,我試圖用「kk」替換「HH」,但它給出了相同的結果。

+0

我猜你的意思'parser.parseDateTime(T)在代碼的最後一行'。它對我來說非常合適 –

回答

0

添加一個區域設置解決了這個問題:

DateTimeFormatter parser = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss yyyy Z").withLocale(Locale.ENGLISH);