首页 > 解决方案 > 将带有“+”的时间戳解析为 Java 中的 Date 或 Instant

问题描述

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

标签: javajodatime

解决方案


Java 8 引入了DateTimeFormatter. 这是DateTimeFormatter 文档的链接。

例如:

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);

美国/蒂华纳时区的输出:

2020 年 5 月 12 日星期二 05:00:00 PDT


推荐阅读