将日期字符串解析为日期对象
将日期字符串解析为日期对象是编程中的常见任务。但是,使用错误的模式可能会导致异常。
问题
以下代码片段尝试解析日期字符串“Thu Sep 28 20:29:30 JST” 2000” 到 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"
解决方案
问题出在日期格式模式上。模式“E MM dd kk:mm:ss z yyyy”使用以下缩写:
但是,在提供的日期字符串中,日期和月份缩写的长度不超过 3 个字符。要解决此问题,请使用以下模式:
DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
此模式指定:
其他注意事项
考虑使用“HH”而不是“kk”来表示一天中的小时。有关日期格式模式的更多信息,请参阅 Java 文档。
以上是如何在 Java 中解析带有缩写日和月名称的日期字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!