价值差异 - 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
保存不同的值
- 在我的 table 中,我有一个字段
TimeReceived
(键入 DateTime
)
- 我将记录保存到 table 分配
DateTime.Now
到字段 TimeReceived
- 我的期望是
Timestamp
和字段 TimeReceived
具有相同的值。
但我看到不同的值
Timestamp value ==> 9/7/2017 09:55:55 AM
TimeReceived value ==> 9/7/2017 09:25:54 PM
我的查询
- 它们分别代表什么(??GMT 和本地)?
- 应该怎么做才能确保时间值以预期的格式正确保存?
- 我们需要在格林威治标准时间保存吗?
- 仅在 GMT 保存是最佳做法吗?
- 如果我将
TimeReceived
的数据类型更改为 DateTimeOffset
,它会保持与 Timestamp
中的值相同的值吗
- 当我获取
DateTime.Now
的数据时,the just-then-inserted
记录没有被获取。 - (我的分析:在 VS 的 Cloud Storage Explorer 中,当我用当前时间值给出值 +5:30 时,我能够检索 the just-then-inserted
值)
- 我从我的网络应用程序 (DatePicker) select 日期并将 selected 值发送到控制器 (C# MVC) 以获取 selected 日期的数据。那么要在
Timestamp = 9/7/2017 09:55:55 AM
处获取记录,应该如何使来自 View(DatePicker) 的 selected 日期获取相应的值?
请分享您对我的疑问的想法、建议和解决方案。
根据我的分析,我现在已经使用 ToUniversal
和 ToLocal
解决了它
- _#1。由于时间戳是 GMT 并且 TimeReceived 保存为本地时间,因为我正在使用 DateTime.Now
将其更改为 UniversalTime 解决了这个问题。
现在我看到两者具有相同的值
- _#2 使用
ToUniversalTime
而 querying\saving Azure TableStorage 到 retreive\save 数据并返回 ToLocalTime
以在 UI 上显示有助于 save\retrieve \正确显示
- _#3 我正在保存 GMT。在此感谢任何人的建议
- _#4 如有任何最佳实践建议,我们将不胜感激
- _#5 将 DataType 更改为 DateTimeOffset 对我感觉没有帮助。
ToUniversal
和 ToLocal
帮助解决了问题
- _#6
ToUniversal
和 ToLocal
帮助解决了我在上面第二个要点中提到的问题
- _#7 从 UI 选择日期是本地的,所以现在从 Controller(MVC) 我将转换为 UTC 的日期发送到 Azure
在显示从 Azure 检索到的数据时,我将日期转换回 LocalTime
我在 Azure TAble 存储中有一个 table。
我的问题
两个时间值字段(Azure 的时间戳和另一个日期时间字段 TimeReceived)为 DateTime.Now
保存不同的值- 在我的 table 中,我有一个字段
TimeReceived
(键入DateTime
) - 我将记录保存到 table 分配
DateTime.Now
到字段TimeReceived
- 我的期望是
Timestamp
和字段TimeReceived
具有相同的值。
但我看到不同的值
Timestamp value ==> 9/7/2017 09:55:55 AM
TimeReceived value ==> 9/7/2017 09:25:54 PM
我的查询
- 它们分别代表什么(??GMT 和本地)?
- 应该怎么做才能确保时间值以预期的格式正确保存?
- 我们需要在格林威治标准时间保存吗?
- 仅在 GMT 保存是最佳做法吗?
- 如果我将
TimeReceived
的数据类型更改为DateTimeOffset
,它会保持与Timestamp
中的值相同的值吗
- 当我获取
DateTime.Now
的数据时,the just-then-inserted
记录没有被获取。 - (我的分析:在 VS 的 Cloud Storage Explorer 中,当我用当前时间值给出值 +5:30 时,我能够检索the just-then-inserted
值) - 我从我的网络应用程序 (DatePicker) select 日期并将 selected 值发送到控制器 (C# MVC) 以获取 selected 日期的数据。那么要在
Timestamp = 9/7/2017 09:55:55 AM
处获取记录,应该如何使来自 View(DatePicker) 的 selected 日期获取相应的值?
请分享您对我的疑问的想法、建议和解决方案。
根据我的分析,我现在已经使用 ToUniversal
和 ToLocal
- _#1。由于时间戳是 GMT 并且 TimeReceived 保存为本地时间,因为我正在使用 DateTime.Now 将其更改为 UniversalTime 解决了这个问题。 现在我看到两者具有相同的值
- _#2 使用
ToUniversalTime
而 querying\saving Azure TableStorage 到 retreive\save 数据并返回ToLocalTime
以在 UI 上显示有助于 save\retrieve \正确显示 - _#3 我正在保存 GMT。在此感谢任何人的建议
- _#4 如有任何最佳实践建议,我们将不胜感激
- _#5 将 DataType 更改为 DateTimeOffset 对我感觉没有帮助。
ToUniversal
和ToLocal
帮助解决了问题 - _#6
ToUniversal
和ToLocal
帮助解决了我在上面第二个要点中提到的问题 - _#7 从 UI 选择日期是本地的,所以现在从 Controller(MVC) 我将转换为 UTC 的日期发送到 Azure
在显示从 Azure 检索到的数据时,我将日期转换回 LocalTime