微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将日期时间从C#保存到MongoDB

我尝试将值从C#保存到MongoDB的日期时间值:

DateTime.ParseExact("10/02/2015", "dd/MM/yyyy", CultureInfo.InvariantCulture)

但在MongoDB中出现:

ISODate("2015-02-09T17:00:00.000Z")

我不知道为什么MongoDB的结果晚于一天(日期:9),而我的日期是10.感谢您阅读我的问题

更新1:作为#mnemosyn的回答我做了一些改变:

DateTime.SpecifyKind((DateTime.ParseExact("20/07/2015", "dd/MM/yyyy", CultureInfo.InvariantCulture)), DateTimeKind.Utc)

结果:ISODate(“2015-07-20T00:00:00.000Z”)

更多细节:DateTime.ToLocalTime Method

解决方法:

问题是解析的日期不被视为UTC日期. 02-09 7h正好是02-10 ……

DateTime有一个名为Kind的属性,类型为DateTimeKind.这些可以是本地,UTC或未指定.如果您正在解析的字符串不指示它是哪一个,那么the returned DateTime.Kind will be Unspecified.然后MongoDB驱动程序将其转换为UTC,因为这通常是人们在想到DateTime时所期望的.

请注意,“始终将UTC存储在数据库中”的咒语并不总是正确的,例如公共汽车时刻表.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐