我写入我的mongoDB数据库,例如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")我很困惑,因为有时日期格式是:
2014-12-28T23:00:00Z (sunday, 23h)有时候是这样的:
2015-04-05T22:00:00Z (sunday, 22h)在Java代码中,日期是星期一,00h ->,这是可以的。有人知道这里发生了什么吗,为什么记录的时间不同,以及如何防止这种情况?
发布于 2015-12-04 17:40:48
夏令时
默认情况下,MongoDB将日期存储在UTC中。
由于您所在的是中欧时区,这意味着根据日期是在Daylight Saving Time (DST) 时段内还是之外,会有一个或两个小时的时差。2015年DST从3月29日开始,10月25日结束。因此,12月28日的偏移量为1小时,4月5日的偏移量为2小时。
如果要防止出现这种情况,则应在将本地日期时间值保存到MongoDB之前将其转换为UTC时间。或者,正如Markus Mahlberg所指出的,在加载日期后转换为本地时间。
发布于 2019-06-14 19:04:12
您可以将其转换为本地时间。
DateTime startDate = dateFromDb.ToLocalTime();您还可以创建如下属性:
DateTime _startDate = DateTime.Now;
public DateTime StartTime { get => _startDate; set => _startDate = value.ToLocalTime(); }https://stackoverflow.com/questions/34085053
复制相似问题