您正在嘗試解析日期-時間字串“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中文網其他相關文章!