我正在尝试从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)
java.time是现代的Java日期和时间API,并为您的字符串提供了内置的格式化程序:
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
该类。那个班是一个班的臭名昭著的制造者,所以我们还是想避免它。
链接: Oracle教程:Date Time解释了如何使用java.time。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句