【发布时间】:2018-12-11 19:54:04
【问题描述】:
我们有一个在英国北部运行的网络应用程序,我们在应用程序设置中使用WEBSITE_TIME_ZONE 明确指定了一个时区。它是一个具有共享数据库架构的多租户 SaaS 应用程序。现在我们有一个来自美国的新客户,他将使用该应用程序。但在不同的时区,它正在更改存储在数据库中的日期和时间。
让应用在不同时区正常运行的最佳做法应该是什么?我应该为每个时区部署一个单独的网站还是应该在代码中处理它?
【问题讨论】:
-
始终将日期存储在 Coordinated Universal Time (UTC) 中。显示信息时,可以根据用户所在位置进行格式化。
-
虽然这个问题对于 Stack Overflow 来说有点宽泛和固执己见,因为对此没有“特定”的正确答案,并且有正当理由存储本地时间内容:存储多个时区只是添加您需要处理的事情,而不是将所有内容存储为 UTC 并在选择的时区本地查看。我会听从@rickvdbosch 的建议,省去很多麻烦。
-
感谢您的回复。所以基本上,就我而言,因为我已经设置了使用 GMT 时区的 Web 服务器,所以我需要先从 GMT 转换为 UTC,然后再将其转换回用户的位置。原因是,此时我无法更改网站的时区,因为它会影响所有现有数据。然后我需要弄清楚如何获取用户的位置并动态更改 web.config?
-
@rickvdbosch - 通常是的,但也有一些极端情况,例如未来事件的安排,其中事件本地时区更可取。此外,整个日期(例如生日)通常是无时间存储的,因此在解释时应用时区而不是在存储时应用时区。只是指出要小心“始终使用 UTC”的建议 - 需要考虑上下文。 :)
标签: azure web-applications timezone