我已将此文档存储在mongo中:
{
"_id" : "cpd4-734fc2db-a5b0-4881-b5d7-bf85d894178d",
"expiresAt" : ISODate("2018-10-10T00:00:00Z")
}
为了确保所有数据都是正确的,我首先获取了文档,并记录了一些数据:
Reference ref = this.mongoTemplate.findById("cpd4-734fc2db-a5b0-4881-b5d7-bf85d894178d", Reference.class);
LOG.info(ref.getExpiresAt().toString());
LOG.info(Long.toString(ref.getExpiresAt().getTime()));
结果是:
Wed Oct 10 02:00:00 CEST 2018 <<<<<<<<<<<<<<<<<<<
1539129600000
如您所见,当我获得对象时,the expiresAt
字段是02:00:00
而不是00:00:00
。
数据库中的值为expiresAt
,字段为:ISODate("2018-10-10T00:00:00Z")
欢迎对此问题发表任何想法或想法!
答案 0 :(得分:0)
此日期以祖鲁时间为准(请注意末尾的“ Z”):
ISODate("2018-10-10T00:00:00Z")
执行此操作时,特别是对.toString()
的调用,您正在将日期转换为时区中的本地日期字符串,该字符串似乎是Zulu + 2:
LOG.info(ref.getExpiresAt().toString());
我通常将服务器的时区设置为UTC / Zulu / GMT,以避免发生任何自动时区转换。