首頁 > Java > java教程 > 為什麼 SimpleDateFormat 會拋出「無法解析的日期」?

為什麼 SimpleDateFormat 會拋出「無法解析的日期」?

Susan Sarandon
發布: 2025-01-01 02:22:09
原創
303 人瀏覽過

Why Does SimpleDateFormat Throw

使用SimpleDateFormat 無法解析的日期:指定區域設定或使用DateTimeFormatter

問題:
使用🎜>

問題:

使用🎜>問題:

使用🎜>

問題:使用🎜>

問題:
  1. 使用🎜>問題:
  2. 用SimpleDateFormat時解析日期,你可能會遇到錯誤“java.text.ParseException:無法解析日期”,尤其是在未指定區域設定時。
SimpleDateFormat dtfmt = new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH);
登入後複製
    說明:
  1. SimpleDateFormat 需要區域設定才能正確解析日期。如果未指定,則使用系統的預設語言環境,該語言環境可能與正在解析的格式不符。
解決方案:
  • 總是指定locale:
使用 SimpleDateFormat 的建構子重載接受 Locale 參數。例如:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        String strDateTime = "24 Oct 2016 7:31 pm";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d MMM uuuu h:m a").withLocale(Locale.ENGLISH);
        LocalDateTime ldt = LocalDateTime.parse(strDateTime, dtf);
        System.out.println(ldt); // prints 2016-10-24T19:31
    }
}
登入後複製

使用現代DateTimeFormatter API:

  • DateTimeFormatter首選API解析日期和時間。 它提供了更大的靈活性和控制格式,包括指定區域設定的能力。
  • 使用DateTimeFormatter 的演示:
注意:由指定的預設語言環境 DateTimeFormatter使用系統目前的區域設定。 總是明確指定區域設定以避免潛在的解析問題。

以上是為什麼 SimpleDateFormat 會拋出「無法解析的日期」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板