2011-12-19 56 views
1

我有類似的問題解析AM/PM到 Unable to parse DateTime-string with AM/PM marker無法使用的SimpleDateFormat

我甚至嘗試在該鏈接所提供的解決方案,但它並沒有幫助。

SimpleDateFormat timingFormat = new SimpleDateFormat("h:mm a", Locale.US); 
Date l = timingFormat.parse(time); 

但我不斷收到 java.text.ParseException:無法解析的日期: 「12:34」。 當我輸入12:34上午

+0

您是否嘗試過解析['timingFormat.setLenient(true);'](http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html#setLenient%28boolean% 29)? – darvids0n 2011-12-19 00:28:14

+1

我在這裏遇到了同樣的問題。我們嘗試了許多變體,但無法解析AM或PM文本,因此請將其關閉並使用24小時制。 「a」或「aa」只能用於格式化DateTime,而不能用於解析字符串。 – 2013-06-03 22:45:55

回答

2

等一下。錯誤說12:34是不可解析的,而不是12:34 AM。在這種情況下,您的輸入方法是讀取第一個單詞直到空白並忽略條目中的「AM」部分。糾正你的輸入法,以便它讀取整個輸入流/字符串,然後它應該正確解析。

1
public static void main(String[] args) throws ParseException { 
    SimpleDateFormat timingFormat = new SimpleDateFormat("h:mm a", Locale.US); 
    Date l = timingFormat.parse("12:34 AM"); 
    System.out.println(l.toString()); 
} 

上面的代碼運行良好。這意味着您傳遞給parse方法的輸入不符合您的預期。

相關問題