SimpleDateFormat 錯誤解析「YYYY-MM-dd HH:mm」
嘗試解析格式為「YYYY-MM」的字串時-dd HH:mm" 到日期,一些開發人員遇到意外的日期結果。當使用SimpleDateFormat 類別並將lenient 設定為false 時,會發生這種情況。
以下程式碼片段示範了該問題:
<code class="java">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."); }</code>
此程式碼產生不正確的日期:
Sun Dec 30 08:30:00 EST 2012 (wrong)
要解決此問題,請驗證SimpleDateFormat 模式中指定的年份格式是否為小寫「yyyy」而不是大寫"YYYY."
<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
透過進行此調整,程式碼將正確解析「YYYY-MM-dd HH:mm」字串。
以上是為什麼 SimpleDateFormat 錯誤解析「YYYY-MM-dd HH:mm」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!