为了账号安全,请及时绑定邮箱和手机立即绑定

在Azure表存储中存储DateTime

在Azure表存储中存储DateTime

C#
呼啦一阵风 2021-04-29 13:21:10
我正在使用默认示例将日期时间值存储在表存储中。其中一个字段的计算如下DateTime accMonth = new DateTime(DateTime.Now.Year,      DateTime.Now.Month, 1);通常,上面的意思是日期为00:00的日期。但是,当我将其保存在表存储中时,我看到的是2018-04-01T18:30:00.000Z这对我来说看起来很奇怪!有人知道为什么吗?
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

您将获得不同的值,因为您正在创建具有本地时区的日期/时间(印度为GMT + 5:30)。在Azure存储中,日期/时间值另存为UTC。

SDK所做的是将该日期转换为UTC,然后保存该日期。这就是为什么您在设置的日期/时间值之前5:30小时看到日期/时间值的原因。

属性类型下的Edm.DateTime

要解决此问题,请将日期/时间类型指定为UTC。这样,SDK将不会进行任何转换。因此,您的代码将是:

var accMonth = new DateTime(DateTime.Now.Year, 
            DateTime.Now.Month, 1, 0, 0, 0, DateTimeKind.Utc);


查看完整回答
反对 回复 2021-05-16
  • 2 回答
  • 0 关注
  • 202 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信