我正在尝试从RSS供稿读取数据,其中一个字段是供稿的最新更新时间。我正在使用与此类似的东西:
Date date;
String output;
SimpleDateFormat formatter;
String pattern = "EEE, dd MMM, HH:mm:ss Z";
formatter = new SimpleDateFormat(pattern, Locale.ENGLISH);
date = formatter.parse("Wed, 25 Mar 2020 08:00:00 +0200");
output = date.toString();
System.out.println(pattern + " | " + output);
但我收到此错误:
Exception in thread "main" java.text.ParseException: Unparseable date: "Wed, 25 Mar 2020 08:00:00 +0200"
at java.text.DateFormat.parse(DateFormat.java:366)
at HelloWorld.main(HelloWorld.java:16)
String lastUpdatedString = "Wed, 25 Mar 2020 08:00:00 +0200";
OffsetDateTime dateTime = OffsetDateTime
.parse(lastUpdatedString, DateTimeFormatter.RFC_1123_DATE_TIME);
System.out.println(dateTime);
输出:
2020-03-25T08:00 + 02:00
因此,无需编写我们自己的格式模式字符串,该字符串总是容易出错,当然也不需要使用SimpleDateFormat
类。那个班是一个班的臭名昭著的制造者,所以我们还是想避免它。Link: Oracle tutorial: Date Time解释如何使用java.time。