SimpleDateFormat
是 Java 中用于解析和格式化日期的類。當使用 SimpleDateFormat
解析日期時出錯,可能有以下幾個原因:
SimpleDateFormat
的模式(pattern)相匹配。例如,如果你的輸入字符串是 “2021-06-01”,那么你應該使用 “yyyy-MM-dd” 作為模式。SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse("2021-06-01");
區分大小寫:SimpleDateFormat
對大小寫敏感。例如,“MM” 表示月份,而 “mm” 表示分鐘。請確保你正確地使用了大小寫。
時區問題:SimpleDateFormat
默認使用系統默認時區。如果你的輸入字符串包含時區信息,你需要在模式中指定時區。例如,如果你的輸入字符串是 “2021-06-01T12:00:00+08:00”,你可以使用 “yyyy-MM-dd’T’HH:mm:ssXXX” 作為模式。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
Date date = sdf.parse("2021-06-01T12:00:00+08:00");
非法日期:確保你的輸入字符串表示一個有效的日期。例如,“2021-02-30” 是一個無效的日期,因為二月沒有 30 天。
異常處理:確保你正確處理了 ParseException
。當解析失敗時,SimpleDateFormat
會拋出此異常。你應該捕獲并適當處理這個異常。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = sdf.parse("2021-06-01");
} catch (ParseException e) {
// Handle the exception
e.printStackTrace();
}
請檢查你的代碼,確保以上問題都已解決。如果問題仍然存在,請提供更多詳細信息,以便我們能夠更好地幫助你。