SimpleDateFormat 錯誤解析「YYYY-MM-dd HH:mm」
試著解析格式為「YYYY-MM」的字串時-dd HH:mm" 到日期,一些開發人員遇到意外的日期結果。當使用SimpleDateFormat 類別並將lenient 設定設為false 時,會發生這種情況。 String dateTime = "2013-03-18 08:30"; SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH); df.setLenient(假); 嘗試 { newDate = df.parse(dateTime); } catch (ParseException e) { throw new InvalidInputException("日期輸入無效。"); }
此程式碼產生不正確的日期:
Date newDate = null;
String dateTime = "2013-03-18 08:30";
SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH);
df.setLenient(false);
try {
newDate = df.parse(dateTime);
} catch (ParseException e) {
throw new InvalidInputException("Invalid date input.");
}
要解決此問題,請驗證指定的年份格式SimpleDateFormat模式中是小寫「yyyy」而非大寫"YYYY."Sun Dec 30 08:30:00 EST 2012 (wrong)
透過進行此調整,程式碼將解析正確的「YYYY-MM-dd HH:mm」字串。有關更多信息,請參閱 SimpleDateFormat 文檔。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3