【问题标题】:Parsing timestamp with '+' into Date or Instant in Java [duplicate]在Java中将带有“+”的时间戳解析为日期或即时[重复]
【发布时间】:2020-09-02 20:49:18
【问题描述】:

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

【问题讨论】:

  • 为什么要标记jodatime,然后明确询问内置的java.util.Datejava.time.Instant
  • 我同意你的观点,你应该解决你其他问题的根本原因。如果有的话。我看了看,不相信。

标签: java jodatime


【解决方案1】:

Java 8 引入了DateTimeFormatter。这是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);

美洲/蒂华纳时区输出:

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

【讨论】:

  • 这是个好建议。一个答案是不够的。仅链接的答案在这里不被视为真实答案。您可能想稍微深入地解释一下它的帮助。
  • @rocketman:很好的答案,它奏效了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
相关资源
最近更新 更多