我认为您的格式没有任何问题。
演示:
import java.text.ParseException;
import java.util.Date;
public class Main {
public static void main(String[] args) throws ParseException {
String[] dateStrings = { "Wed, 19 Aug 2020 15:28:47 GMT", "Thu, 20 Aug 2020 13:30:16 +0000" };
for (String dateString : dateStrings) {
Date pubDate = org.apache.commons.lang3.time.DateUtils.parseDate(dateString, "EEE, dd MMM yyyy HH:mm:ss Z",
"EEE, dd MMM yyyy HH:mm:ss zzz");
System.out.println(pubDate);
}
}
}
输出:
Wed Aug 19 16:28:47 BST 2020
Thu Aug 20 14:30:16 BST 2020
但是,我强烈建议您停止使用过时且容易出错的java.util
日期时间 API 和SimpleDateFormat
. 切换到现代 java.time
日期时间 API 和相应的格式化 API ( java.time.format
)。从Trail: Date Time了解有关现代日期时间 API 的更多信息。
使用现代日期时间 API:
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
// Test strings
String[] dateStrings = { "Wed, 19 Aug 2020 15:28:47 GMT", "Thu, 20 Aug 2020 13:30:16 +0000" };
// Define formatter
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("[EEE, dd MMM yyyy HH:mm:ss Z][EEE, dd MMM yyyy HH:mm:ss zzz]", Locale.ENGLISH);
for (String dateString : dateStrings) {
ZonedDateTime zdt = ZonedDateTime.parse(dateString, formatter);
System.out.println(zdt);
}
}
}
输出:
2020-08-19T15:28:47Z[GMT]
2020-08-20T13:30:16Z
如果您的 android 版本不符合 Java-8,您可以使用ThreeTen-BackportCheck进行反向移植。检查如何在 Android 项目中使用 ThreeTenABP