全球化与Azure上的文化设置

时间:2013-04-17 16:05:52

标签: azure time localization culture

我们位于英国,并为Azure部署了一系列Web服务。其中一个每5分钟自动刷新一次,并显示“最后更新为hh:mm:ss”消息。 这似乎没有考虑夏令时,因为显示的时间比当地时间晚一个小时。我们怀疑它正在使用UTC。我们尝试过设置

<globalization uiCulture="en" culture="en-GB"/> 
在web.config中

并以编程方式没有成功。 是否有一个更简单的解决方案来显示正确的本地时间,而不是确定DST偏移并在'DateTime.Now()的每个实例上应用它?'

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

在“应用程序设置”下的Azure门户中,添加名为WEBSITE_TIME_ZONE且值为W. Europe Standard Time的环境变量。

enter image description here

有关其他值,请参阅:https://msdn.microsoft.com/en-us/library/ms912391(v=winembedded.11).aspx

答案 1 :(得分:0)

是 - Azure在UTC时间运行。请阅读DateTime.ToLocalTime MethodTimeZoneInfo.ConvertTime Method,了解如何获取已知时区的本地时间。

答案 2 :(得分:0)

@viperguynaz是正确的,所有Azure都在UTC上运行。如果您在Azure中运行,那么您应该保持它在UTC中运行,而不是试图绕过它,因为有些事情表现得并不好。相反,作为软件开发人员,您应该将该功能添加到您的应用程序中以遵守时区并处理在UTC上运行的数据和运行的服务。切勿使用DateTime.Now,而应始终使用DateTime.UtcNow

有关详细信息,请参阅this question

答案 3 :(得分:0)

我们有类似的英国特定情况,我们只需在一行“提升简单”启动任务中使用时区实用程序tzutil设置时区:

tzutil /s "GMT Standard Time"

我们没有看到任何问题,时间戳总是符合我们的期望。这似乎比确保代码中的每个DateTime交互都能使本地时间/时区知晓更简单。

我相信此实用程序仅包含在Windows Server 2008 R2及更高版本的映像中。