java-使用SimpleDateFormat时无法解析的日期

问题描述 投票:1回答:1

我正在尝试从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 date simpledateformat
1个回答
3
投票
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类。那个班是一个班的臭名昭著的制造者,所以我们还是想避免它。

Link: Oracle tutorial: Date Time解释如何使用java.time。

© www.soinside.com 2019 - 2024. All rights reserved.