java - 将带有“+”的时间戳解析为 Java 中的 Date 或 Instant
问题描述
我有格式的时间戳 2020-05-12 12:00:00+00
。如何解析成 Java.util.Date 和 Java.time.Instant。看似基本的问题,但我怀疑这是我尚未在线程中解决的问题的根源
解决方案
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
推荐阅读
- sql - 从 Oracle 中的“start with”和“connect by”到 Postgres
- react-native - 如何在 React Native 中切换到不同的选项卡并重置 TabNavigator 中的所有选项卡
- react-native - 如何使“按下 BottomTabNavigator 时返回初始屏幕”
- delphi - 如何获取泛型类方法的方法地址?
- amazon-web-services - 导出 AppSync 状态/配置?
- sql - 为什么这两个带有“EXISTS”的查询表现不同?
- layout - Bootstrap 不会以 100% 显示列
- android - 应用程序本地的增强图像 [ARCore]
- browser - 确保 URL 只打开一次
- r - 在矩阵上使用 tapply 时出现参数长度错误