MongoDB C# Driver--Date Time

MongoDB

对于时间类型的数据,Mongo中使用BSON标准的时间类型,64位二进制表示的自 Unix 纪元以来的 UTC 毫秒数。所以mongo中的日期本质是一个Int64的数字(UTC时区),所以无法从数据库根本上改变日期的时区。不过,Mongo内置的方法以及各个语言版本的driver都是有时区设置,已实现对开发者透明的时区转换。

C# Driver(2.16.1)

C#中的时间 (DateTime)

DateTime结构体应该是我们用的最多的一种变量类型,基础的用法也比较简单,需要注意的只有一点,就是DateTime是包含时区信息的。这一点是我们可能忽略的。如:

DateTime now = DateTime.Now;
var a = now.Kind;
var b = (a == DateTimeKind.Local);

上面示例中 b为true。注意DateTimeKind属性,是因为我们使用DateTime.Parse时如果时间字符串中没有时区信息,则转换成的时间Kind属性为Unspecified(未指定)。这种情况下,使用第三方库时就无法确定第三方库是按什么时区处理此时间,造成不确定。或者使用.ToLocalTime() 时没有在意自动加了8小时造成问题。如下:

var t = DateTime.Parse("2022-07-08 11:11:11");
b = (t.Kind == DateTimeKind.Local);//b==false
t =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值