如何处理日期字符串解析异常
将日期字符串解析为 Date 对象有时会导致异常,如以下代码所示:
String target = "Thu Sep 28 20:29:30 JST 2000"; DateFormat df = new SimpleDateFormat("E MM dd kk:mm:ss z yyyy"); Date result = df.parse(target);
此代码抛出以下异常:
java.text.ParseException: Unparseable date: "Thu Sep 28 20:29:30 JST 2000"
此错误的原因是用于解析的模式与日期字符串的格式不匹配。具体来说,该模式需要 3 个字母的日缩写 (EEE) 和 3 个字母的月份缩写 (MMM),但日期字符串包含 2 个字母的日缩写 (E) 和完整的月份名称 (Sep)。
要纠正此问题,应更新模式以匹配日期字符串的格式:
DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
此外,指定区域设置可确保正确解释日期和月份缩写,即使平台默认区域设置不是英语。
使用更正后的模式,代码现在可以成功解析日期字符串并返回一个表示字符串中指定的日期和时间的 Date 对象,并根据当前时区进行调整:
Thu Sep 28 07:29:30 BOT 2000
以上是解析日期字符串时如何修复 ParseException?的详细内容。更多信息请关注PHP中文网其他相关文章!