首页 >Java >java教程 >解析带有附加信息的日期时如何修复'java.text.ParseException:无法解析日期”?

解析带有附加信息的日期时如何修复'java.text.ParseException:无法解析日期”?

Susan Sarandon
Susan Sarandon原创
2024-11-16 10:45:03568浏览

How to Fix

解决“java.text.ParseException: Unparseable date”异常

“java.text.ParseException: Unparseable date”异常发生在以下情况SimpleDateFormat 对象尝试解析与其指定模式不匹配的输入字符串。在这种情况下,无法使用模式“MMM d, yyyy HH:mm:ss”来解析输入字符串“Sat Jun 01 12:53:10 IST 2013”​​,因为输入字符串包含附加信息,例如星期几(周六)和时区(IST).

解决方案:

要解决此问题,需要调整日期解析和打印。

日期解析:

  1. 创建一个 SimpleDateFormat 对象,其中包含与输入字符串匹配的模式。在这种情况下,请使用以下模式:
SimpleDateFormat sdf = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);

此模式包括星期几 (EE)、月份 (MMM)、月份中的日期 (dd)、小时 (HH) 、分 (mm)、秒 (ss)、时区 (z) 和年份 (yyyy)。您可以根据特定的输入字符串格式自定义此模式。

  1. 使用创建的 SimpleDateFormat 对象解析输入字符串:
Date parsedDate = sdf.parse(date);

日期打印:

解析日期后,您需要格式化日期以匹配您所需的输出。使用所需模式创建第二个 SimpleDateFormat 对象:

SimpleDateFormat print = new SimpleDateFormat("MMM d, yyyy HH:mm:ss");

然后,使用“打印”SimpleDateFormat 对象格式化解析的日期:

System.out.println(print.format(parsedDate));

附加说明:

  • 在 SimpleDateFormat 构造函数中包含区域设置。这可确保根据正确的文化约定解析和打印日期。
  • 在输入字符串中使用正确的时区名称,而不是像“IST”这样不明确的时区缩写。

以上是解析带有附加信息的日期时如何修复'java.text.ParseException:无法解析日期”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn