Div*_*yas 2 timezone web-applications azure
我们有一个在英国北部运行的网络应用程序,我们已经WEBSITE_TIME_ZONE在应用程序设置中明确指定了一个时区。它是一个具有共享数据库架构的多租户 SaaS 应用程序。现在我们有一个来自美国的新客户,他将使用该应用程序。但是处于不同的时区,它正在更改存储在数据库中的日期和时间。
让应用程序在不同时区正常工作的最佳实践是什么?我应该为每个时区部署一个单独的网站还是应该在代码中处理它?
一些东西:
无论语言或平台如何,服务器端代码的最佳实践是使其与时区无关。这意味着不要对单个时区产生任何硬编码的依赖,无论是来自配置文件、托管设置还是服务器设置。
DateTime.Now、DateTimeKind.Local、TimeZoneInfo.Local和相关 API,因为它们的时区来自服务器设置。相反,使用适用于 UTC 和/或特定时区或时区偏移的 API。
DateTime.UtcNow,DateTimeOffset,TimeZoneInfo.ConvertTime,TimeZoneInfo.FindSystemTimeZoneById,和其他几个人。或者,考虑使用Noda Time,它提供了更全面和一致的 API。通常,应用程序应将用户和/或位置的时区作为单独的字段进行跟踪,以字符串时区标识符的形式存储,以 Windows 时间格式或 IANA 时区格式存储。阅读timezone tag wiki以获取更多详细信息(标题为“时区数据库”的部分)。
关于WEBSITE_TIME_ZONE设置:仅在以下所有条件都为真时使用:
DateTime.Now。我个人的意见是该WEBSITE_TIME_ZONE设置不应该存在。在适当设计的应用程序中不需要它。它是一种应谨慎使用且仅作为最后手段使用的拐杖。
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |