Java SimpleDateFormat 始終返回月份的一月
嘗試將Active Directory 中的日期轉換為Java 日期時,結果始終顯示儘管在輸入字串中指定了正確的月份,但月份仍為一月。這個問題源自於對 SimpleDateFormat 使用的日期格式的誤解。
負責轉換的有問題的方法如下:
<code class="java">private Date getParsedDate(String givenString) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD"); Date parsedDate = sdf.parse(givenString); return parsedDate; }</code>
在這個方法中,SimpleDateFormat 是用模式“yyyy/MM/DD”,分別表示年、月、日。但是,Active Directory 中的輸入字串遵循不同的格式:「yyyyMMddHHmmss.SSS」。有問題的部分是月份表示,應為小寫“mm”而不是大寫“MM”。
要解決此問題,SimpleDateFormat 建構子中的模式字串應變更為「yyyy/mm/dd」 ":
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd");</code>
透過此更改,Java SimpleDateFormat 將正確地將給定的字串轉換為具有正確月份值的Java Date 物件。
以上是為什麼 Java SimpleDateFormat 總是會回到月份的一月?的詳細內容。更多資訊請關注PHP中文網其他相關文章!