首頁 >Java >java教程 >為什麼我的 Java 日期轉換會產生錯誤的月份?

為什麼我的 Java 日期轉換會產生錯誤的月份?

DDD
DDD原創
2024-11-06 08:14:021182瀏覽

Why is My Java Date Conversion Producing the Wrong Month?

Java 日期格式轉換問題:月份渲染不正確

遇到的問題

嘗試使用Java 將日期從一種格式轉換為另一種格式時,某些使用者遇到了月份渲染錯誤的問題。具體來說,當從“yyyy-mm-dd”等格式轉換為“dd MMMM yyyy”時,結果月份顯示為下個月(例如,“01/12/21”變為“01 一月2021”而不是“01 2021 年12 月”)。

格式規格不正確

此問題的根本原因在於 fromFormat 字串規範不正確。在提供的範例中,fromFormat 定義為「yyyy-mm-dd」。但是,Java SimpleDateFormat 類別中的「mm」表示分鐘,而不是月份。要正確表示月份,格式說明符應為“MM”。

已修正的程式碼

要解決此問題,請更新程式碼如下:

String dateStr = "2011-12-15";
String fromFormat = "yyyy-MM-dd";
String toFormat = "dd MMMM yyyy";

try {
    DateFormat fromFormatter = new SimpleDateFormat(fromFormat);
    Date date = fromFormatter.parse(dateStr);

    DateFormat toFormatter = new SimpleDateFormat(toFormat);
    String result = toFormatter.format(date);
    
    System.out.println(result); // Prints "15 December 2011"
} catch (ParseException e) {
    e.printStackTrace();
}

以上是為什麼我的 Java 日期轉換會產生錯誤的月份?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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