java - 具有不同偏移量的 OffsetDateTime 与 UTC (Zulu) 的 OffsetDateTime
问题描述
我在我的数据库中保存了不同偏移量的值,例如
`2018-03-26T03:00:00+03:00`
`2018-03-26T03:00:00+02:00`
我想将它们解析为base
应该偏移 0 的值,以便进行更轻松的比较,但同时也将日期保留在真正人类可读的状态(这意味着我想保留 Offset,而不是例如即时)。
如何使用正确的日期传输将偏移量解析OffsetDateTime
为偏移+00
量(称为UTC
or ZULU
)(我的意思是,不仅将 2 更改为 0,而且还正确计算日期和时间)。
解决方案
当您知道如何时,这很容易:
String dateTimeFromDatabase = "2018-03-26T03:00:00+03:00";
OffsetDateTime dateTime = OffsetDateTime.parse(dateTimeFromDatabase)
.withOffsetSameInstant(ZoneOffset.UTC);
System.out.println("With offset 0: " + dateTime);
输出是:
偏移量 0:2018-03-26T00:00Z
我不明白你为什么介意得到一个Instant
. 它打印为2018-03-26T00:00:00Z
. 唯一的区别是秒数被包括在内,即使它们是00
.
推荐阅读
- php - 如何使用 IP 地址访问 API 输出文件?
- sql - 我们可以在视图上创建物化视图吗
- objective-c - 如何在 Xamarin 中实现 Treelist 下拉菜单?
- java - 从 PHP URL 处理 RecyclerView 中的空异常
- python - Python Regex:仅替换捕获的组
- java - 升级 Corda 后运行测试时出错 obj.javaClass.`package`
- java - 如何使用 mouseClicked 在循环内获取 JLabel 的值?
- ios - UIAlertController 和 UIViewAlertForUnsatisfiableConstraints 错误
- dataframe - 八度:将数据帧转换为元胞数组
- javascript - 阿贾克斯。语法错误。无效字符