【发布时间】:2020-10-10 09:00:05
【问题描述】:
我有一个应用程序,它导入用户提供的 Excel 文件,该文件上传到 Azure Block 存储,并通过 Azure Functions(C# 中)处理数据,最后将数据保存到 Azure Table(如数据库表)中。
Excel 文件包含伦敦时间的时间列。该应用程序的用户仅位于英国。
在这种情况下,Excel文件中的时间应该转换为UTC时间还是保存到Azure Table时的原始时间?
一般而言,哪些因素决定时间必须保存为 UTC 时间还是本地时间?
更新
Azure Functions 托管在北欧。
默认情况下,Azure Table 似乎会以 UTC 时间自动保存 DateTimeOffset。也就是说,“6/2/2020 9:00:00 PM +01:00”保存为晚上 8 点,而不是晚上 9 点。
同样,当 Azure Functions 时区设置为“WEBSITE_TIME_ZONE”:“GMT 标准时间”时,“6/2/2020 9:00:00 PM +01:00”将保存为晚上 8 点而不是晚上 9 点
【问题讨论】:
-
如果您在一个特定的位置工作,最好使用当地时间。简单更好。
-
只要确保时间戳都与相同时区相关。不要混用时区。 UTC 是通用的,因此将其用作所有时间戳的时区当然也不错。但是如果你可以在加载数据时转换它,这意味着你也可以在以后转换它,如果你需要它在 UTC 中。所以你并没有真正失去任何东西。当然,除非您经常需要 UTC。然后转换一次并经常使用它可能会便宜一些。不过,您最常使用的任何其他时区也是如此。
标签: c# azure database-design architecture azure-storage