将日期字符串解析为日期对象
要将日期字符串转换为日期对象,SimpleDateFormat 类提供了一个 parse 方法。但是,如果提供的模式与输入日期字符串不匹配,则会抛出 ParseException。
解决方案
在这种情况下,输入日期字符串包括“Thu " 和 "Sep",分别表示缩写的日期和月份名称。正确的模式应该对这些元素使用“EEE”和“MMM”。此外,语言环境必须显式设置为英语,以避免特定于语言环境的问题。
更正的代码是:
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.Date; import java.util.Locale; public class DateParser { public static void main(String[] args) throws ParseException { String target = "Thu Sep 28 20:29:30 JST 2000"; DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH); Date result = df.parse(target); System.out.println(result); } }
此代码打印正确的 Date 对象,针对指定时区进行调整:
Thu Sep 28 07:29:30 BOT 2000
额外注意事项
解析日期字符串时,您可能还需要考虑使用“HH”而不是“kk”作为小时模式,因为它代表 24 小时时间表示法。有关有效模式的更多信息,请参阅 SimpleDateFormat 文档。
以上是如何解析带有缩写日和月名称的日期字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!