Spring Mongodb 时间戳时区误导

fat*_*dem 3 java timezone datetime mongodb spring-data-mongodb

我正在使用 Spring Data MongoDB。当我保存一些记录时,MongoDb 没有正确保存我的时间戳。

这是我在 Spring 中的时间戳字段。

@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private Date timestamp = new Date();
Run Code Online (Sandbox Code Playgroud)

我的 MongoDB 记录。

{
"_id": ObjectId("5697a672ce2a8e5347d86afd"),
"batteryLevel": 100,
"beaconClass": 3,
"beaconId": "dsadsa",
"timestamp": ISODate("2016-01-14T13:45:22.702Z")
}
Run Code Online (Sandbox Code Playgroud)

当我登录到控制台我的时区和日期时,我看到它是正确的。

Eastern European Time
Asia/Istanbul
Thu Jan 14 15:45:22 EET 2016
Run Code Online (Sandbox Code Playgroud)

如何更正时间 MongoDB 时间戳?

Ale*_*lex 7

MongoDB 默认以 UTC 存储时间,并将任何本地时间表示形式转换为这种形式,请参阅文档。您必须在应用程序逻辑中计算原始本地时间。

  • 我们如何告诉 mongo 我们正在发送 UTC 日期,以便它不会再次将其转换为 UTC,因为它已经在 UTC 中......我正在使用 spring MongoRepository JPA (3认同)