首頁  >  文章  >  Java  >  為什麼 Java SimpleDateFormat 總是會回到月份的一月?

為什麼 Java SimpleDateFormat 總是會回到月份的一月?

Barbara Streisand
Barbara Streisand原創
2024-10-24 07:57:30193瀏覽

Why Is Java SimpleDateFormat Consistently Returning January for Month?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn