将带有“+”的时间戳解析为 Java 中的日期或即时

Parsing timestamp with '+' into Date or Instant in Java

我有 2020-05-12 12:00:00+00 格式的时间戳。我如何解析为 Java.util.Date 和 Java.time.Instant。 看似基本的问题,但我怀疑这是我在

中尚未解决的问题的根源

Java 8 介绍DateTimeFormatter。这是 link 到 DateTimeFormatter Documentation.

例如:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssx");
String tsFromDb = "2020-05-12 12:00:00+00";
Instant inst = formatter.parse(tsFromDb, Instant::from);
System.out.println(inst);

输出:

2020-05-12T12:00:00Z

如果你需要java.util.Date:

Date oldfashionedDate = Date.from(inst);
System.out.println(oldfashionedDate);

America/Tijuana 时区的输出:

Tue May 12 05:00:00 PDT 2020