我写入我的mongoDB数据库,例如startDate,startdate总是一周的星期一(我用,我在欧洲中部时区).
"startDate" : ISODate("2014-12-28T23:00:00Z"), "startDate" : ISODate("2015-03-29T22:00:00Z") "startDate" : ISODate("2015-04-05T22:00:00Z"), "startDate" : ISODate("2015-10-25T23:00:00Z")
我很困惑,因为有时dateformat是:
2014-12-28T23:00:00Z (sunday, 23h)
有时它是:
2015-04-05T22:00:00Z (sunday, 22h)
在Java代码中,日期是星期一,00h - >这没关系.有谁知道这里发生了什么,为什么记录的时间不同以及如何防止这种情况?
MongoDB 默认以UTC格式存储日期.
由于您处于中欧时区,这意味着根据日期是否在夏令时(DST)期间或之外,存在一个或两个小时的差异.2015年DST于3月29日开始,并于10月25日结束.因此,12月28日的偏差为1小时,4月5日的偏差为2小时.
如果要阻止这种情况,则应将本地日期时间值转换为UTC时间,然后再将其保存到MongoDB.或者,正如Markus Mahlberg指出的那样,在加载日期后转换为当地时间.