首頁 >Java >java教程 >為什麼我的日期解析在不同區域設定上失敗?

為什麼我的日期解析在不同區域設定上失敗?

Susan Sarandon
Susan Sarandon原創
2024-12-19 13:14:12792瀏覽

Why Does My Date Parsing Fail on Different Locales?

由於區域設定錯誤而無法解析日期

您正在嘗試解析日期-時間字串“24 Oct 2016 7:31 pm” ,帶有預設實例化的日期時間格式化程式dtfmt語言環境。但是,當程式碼在手機上執行時,會遇到 ParseException 異常,並顯示訊息「java.text.ParseException: Unparseable date: java.text.DateFormat.parse(DateFormat.java:579)」。

產生的原因異常

此異常訊息中的關鍵細節是系統在解析日期時嘗試應用預設的Locale,這不是我們預期的。預設情況下,Android 的區域設定設定為與系統的語言和區域設定相符。對於許多設備,這將是英語以外的語言環境,導致解析失敗。

解決方案

始終建立日期時間格式化程式時明確指定區域設置,無論是 SimpleDateFormat 或 DateTimeFormatter。在您的情況下,您可以將區域設定設為Locale.ENGLISH,如下所示:


SimpleDateFormat dtfmt=new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH );<br>

這指定日期時間解析器應使用英文語言約定來解析日期時間字串。這將確保無論系統的區域設定如何,都能正確解析相同的日期時間字串。

以上是為什麼我的日期解析在不同區域設定上失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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