如何在java中比较格式“EEE MMM dd HH:mm:ss zzz yyyy”和“yyyy-MM-dd hh:mm:sss”的日期时间?

Pra*_*dge 2 java datetime datetime-comparison

我的日期类型为“EEE MM DD HH:mm:ss zzz yyyy”(Wed Mar 04 03:34:45 GMT+08:00 2020)和“yyyy-MM-dd hh:mm:ss”(2020-02) -04 02:10:58).如何在java中比较这两个日期?

两个日期都在同一时区。

aku*_*ykh 6

如果您假设第二个日期的时区与第一个相同,那么您可以使用java.time。它拥有您需要的所有解析工具。任何其他固定时区也适用。

下面是一个例子:

String a = "Wed Mar 04 03:34:45 GMT+08:00 2020";
String b = "2020-02-04 02:10:58";

ZonedDateTime parsedA;
ZonedDateTime parsedB;

DateTimeFormatter formatterA = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy");
parsedA = ZonedDateTime.parse(a, formatterA);
DateTimeFormatter formatterB = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
parsedB = LocalDateTime.parse(b, formatterB).atZone(parsedA.getZone());

// What do you want to compare? For example you can tell if a is after b.
System.out.println(parsedA.isAfter(parsedB));
Run Code Online (Sandbox Code Playgroud)

如果您需要其他格式并需要模式字母和符号列表,请查看此处