sla*_*avo 4 java spring mongodb
我在将 Java8 日期 API 值保存到 MongoDB 数据库时遇到问题。每当保存一个新的 LocalDate 实例 (LocalDate.now()) 时,我们都会获得昨天的日期和时间设置为下午 23:00 的值。例子:
dt.getDate().toString()
Run Code Online (Sandbox Code Playgroud)
给我“2017-03-17”
但是当我查看数据库时,我有一个这样的值:
"dt" : ISODate("2017-03-16T23:00:00.000Z")
Run Code Online (Sandbox Code Playgroud)
我的时区是 UTC+01:00
MongoDB 以 UTC 时间保存日期。
LocalTime 是您的挂钟时间。
当您将其传递给 MongoDb 时,spring 将使用您的系统区域将其转换LocalTime
为Instant
(UTC 时间)。
考虑
LocalDateTime localDateTime = LocalDateTime.parse("2017-03-17T00:00:00")
Run Code Online (Sandbox Code Playgroud)
发生这样的事情
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
Run Code Online (Sandbox Code Playgroud)
这是通过应用与本地时间的偏移量 (+01:00) 将本地时间更改为 UTC 即时的地方。
Output(in UTC) : 2017-03-16T23:00:00.000Z
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4580 次 |
最近记录: |