我尝试将值从C#保存到MongoDB的日期时间值:DateTime.ParseExact(10/02/2015, dd/MM/yyyy, CultureInfo.InvariantCulture)但在MongoDB中出现:ISODate(2015-02-09T17:00:00.000Z)我不知道为什么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存储在数据库中”的咒语并不总是正确的,例如公共汽车时刻表.
本文标题为:将日期时间从C#保存到MongoDB
- c#开发cad预览图块步骤详解 2023-01-16
- C#获得程序的根目录以及判断文件是否存在的实例讲解 2023-01-22
- WPF如何自定义TabControl控件样式示例详解 2022-12-11
- c# – 使用Windows 10 Universal App的iTextSharp 2023-09-18
- C#使用System.Buffer以字节数组Byte[]操作基元类型数据 2023-06-05
- C#异步迭代IAsyncEnumerable应用实现 2023-04-22
- C#如何实现监控手机屏幕(附源码下载) 2023-03-14
- c# – 记录Windows服务 2023-09-18
- Unity为软件添加使用有效期的具体步骤 2023-05-26
- C#基于winform实现音乐播放器 2023-05-17