java - 如何将 java.util.Date 转换为 java.time.LocalDate 并保留日期/时间
问题描述
我正在尝试将 a 转换java.util.Date
为java.time.LocalDate
:
[java.util.Date instance].toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
但是,有一种情况[java.util.Date instance]
,例如白天时间:22:25,我选择 ZoneId 像这样,例如:ZoneId.of("Asia/Singapore")
.
结果LocalDate
将有不同的一天(因为该区域增加了 +6 小时),例如欧洲/明斯克:
printing java.util.Date: Thu Mar 04 22:25:00 CET 2021
printing converted java.util.Date to java.time.LocalDate with Europe/Minsk: 2021-03-04
printing converted java.util.Date to java.time.LocalDate with Asia/Singapore: 2021-03-05
我想在结果中保留与LocalDate
该Date
实例相同的日期。一些方法如何解决这个问题?我想可能有几种方法。
解决方案
您可以将其转换为即时,将时区设置为 UTC,因为java.util.Date使用的是 UTC。
public static LocalDate convert (Date date) {
return date.toInstant()
.atZone(ZoneId.of("UTC"))
.toLocalDate();
}
推荐阅读
- asp.net-core - 如何从响应标头中删除“服务器”
- c# - 我有一个我想在我的 Unity C# 应用程序中使用的 JSON,其中一些属性被重载
- mongodb - 在 MongoDB 集群上主节点被杀死后,主节点选举未完成
- elasticsearch - UUID 的弹性搜索 Ngram 标记器性能
- visual-studio-code - 访问或打开同一工作空间中的其他文件后,C++ 符号消失(不再找到)
- python - 如何创建一个装饰器来装饰生成器函数?
- mysql - MySQL 复杂的 Where 语句
- javascript - 使用按钮 javascript - html 进行表单搜索
- twilio - 运行 Twilio Video w Hook 存储库的问题
- javascript - 如果您不知道文档名称,如何删除 Firebase Firestore 集合文档?