首页 > 解决方案 > 将日期时间存储在天蓝色表存储中

问题描述

我正在使用默认示例将日期时间值存储在表存储中。一字段计算如下

DateTime accMonth = new DateTime(DateTime.Now.Year, 
    DateTime.Now.Month, 1);

通常上面是指时间为 00:00 的日期。

但是,当我将其保存在表存储中时,我认为这次是

2018-04-01T18:30:00.000Z

这对我来说看起来很奇怪!有谁知道为什么?

标签: c#azureazure-storageazure-table-storage

解决方案


您获得了不同的值,因为您正在使用本地时区创建日期/时间(印度是 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);

推荐阅读