java - 将 ZonedDateTime 转换为 java.util.Date
问题描述
如何在不更改时区的情况下将 ZonedDateTime 转换为 java.util.Date。
在我下面的方法中,当我调用Date.from(datetime.toInstant())
它时,将其转换为本地时区,在我的情况下为 SGT。
public static void printDate(ZonedDateTime datetime) {
System.out.println("---> " + datetime.format(DateTimeFormatter.ofPattern(API_TIME_STAMP_PATTERN)));
System.out.println(Date.from(datetime.toInstant()));
System.out.println("\n");
}
输出
---> 2019-03-13_08:46:26.593
Wed Mar 13 16:46:26 SGT 2019
解决方案
您可以自己添加偏移量。请参阅使用示例java.util.Date
:
long offsetMillis = ZoneOffset.from(dateTime).getTotalSeconds() * 1000;
long isoMillis = dateTime.toInstant().toEpochMilli();
Date date = new Date(isoMillis + offsetMillis);
推荐阅读
- odoo - 如何以在 Odoo 服务器上上传的格式下载文件?
- java - 如何使用 AWS lambda 授权 gmail API
- c# - 类型约束,类型存储在变量中
- php - 如何在没有 sql 查询的情况下获取唯一数据
- python - 使用正则表达式一次提取两个模式
- android - 我的应用程序在 Oreo 8.1 版本上崩溃,但适用于较低的操作系统版本
- python - 如何将消息添加到不同功能的队列并读取它
- javascript - Bootstrap DateTimePicker v4 在我的 ASP.NET 页面上不起作用
- php - 使用 PHP 迭代多维数组似乎跳过了值
- database - 如何建模 NoSQL 数据库(Firestore)?回顾我的第一种方法