2015-11-05 94 views
1

這個代碼是拋出 「無效的格式」 或 「畸形的」 異常:JodaTime拋出:IllegalArgumentException:無效的格式

代碼:

strDate = "21/10/2015 12:00:00 AM"; 
format = "dd/MM/yyyy hh:mm:ss a"; 

DateTime.parse(strDate, DateTimeFormat.forPattern(format)).toDate(); 

例外:

java.lang.IllegalArgumentException: Invalid format: "21/10/2015 12:00:00 AM" 
is malformed at "AM" 

有什麼不對?

我尤斯喬達時間:2.8.1

(我已經搜查,我認爲這是爲strDate正確的模式)

回答

4

AM/PM標記的文字可能是不同的的默認語言環境。你可以做

Date date = 
    DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).toDate(); 
+0

好吧我試試這個代碼,我評論。 –

+0

確定此代碼工作,謝謝,additionaly我更新了JodaTime版本到2.9 –

3

取決於語言環境,你可以指定區域時區

這些應該爲你工作:

DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).withZone(DateTimeZone.UTC).toDate(); 

DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).toDate(); 
+0

是的,你說得對,謝謝。 –

+0

不客氣。 – jfun

相關問題