首页 >Java >java教程 >为什么我的日期解析在不同区域设置上失败?

为什么我的日期解析在不同区域设置上失败?

Susan Sarandon
Susan Sarandon原创
2024-12-19 13:14:12797浏览

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