您正在尝试解析日期-时间字符串“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中文网其他相关文章!