价值差异 - Azure Table 存储时间戳和 Azure Table 存储中的新日期时间 属性

Difference in value - Azure Table Storage Timestamp and new DateTime property in Azure Table Storage

我在 Azure TAble 存储中有一个 table。

我的问题

两个时间值字段(Azure 的时间戳和另一个日期时间字段 TimeReceived)为 DateTime.Now

保存不同的值

但我看到不同的值

Timestamp value ==> 9/7/2017 09:55:55 AM

TimeReceived value ==> 9/7/2017 09:25:54 PM

我的查询

  1. 它们分别代表什么(??GMT 和本地)?
  2. 应该怎么做才能确保时间值以预期的格式正确保存?
  3. 我们需要在格林威治标准时间保存吗?
  4. 仅在 GMT 保存是最佳做法吗?
  5. 如果我将 TimeReceived 的数据类型更改为 DateTimeOffset,它会保持与 Timestamp
  6. 中的值相同的值吗
  7. 当我获取 DateTime.Now 的数据时,the just-then-inserted 记录没有被获取。 - (我的分析:在 VS 的 Cloud Storage Explorer 中,当我用当前时间值给出值 +5:30 时,我能够检索 the just-then-inserted
  8. 我从我的网络应用程序 (DatePicker) select 日期并将 selected 值发送到控制器 (C# MVC) 以获取 selected 日期的数据。那么要在 Timestamp = 9/7/2017 09:55:55 AM 处获取记录,应该如何使来自 View(DatePicker) 的 selected 日期获取相应的值?

请分享您对我的疑问的想法、建议和解决方案。

根据我的分析,我现在已经使用 ToUniversalToLocal

解决了它
  • _#1。由于时间戳是 GMT 并且 TimeReceived 保存为本地时间,因为我正在使用 DateTime.Now 将其更改为 UniversalTime 解决了这个问题。 现在我看到两者具有相同的值
  • _#2 使用 ToUniversalTime 而 querying\saving Azure TableStorage 到 retreive\save 数据并返回 ToLocalTime 以在 UI 上显示有助于 save\retrieve \正确显示
  • _#3 我正在保存 GMT。在此感谢任何人的建议
  • _#4 如有任何最佳实践建议,我们将不胜感激
  • _#5 将 DataType 更改为 DateTimeOffset 对我感觉没有帮助。 ToUniversalToLocal 帮助解决了问题
  • _#6ToUniversalToLocal 帮助解决了我在上面第二个要点中提到的问题
  • _#7 从 UI 选择日期是本地的,所以现在从 Controller(MVC) 我将转换为 UTC 的日期发送到 Azure
    在显示从 Azure 检索到的数据时,我将日期转换回 LocalTime