3

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

<globalization uiCulture="en" culture="en-GB"/> 

在 web.config 中并以编程方式没有成功。有没有比确定 DST 偏移量并在“DateTime.Now()”的每个实例中应用它更简单的解决方案来显示正确的本地时间?

提前感谢您的帮助。

4

4 回答 4

3

在应用程序设置下的 Azure 门户中,添加一个环境变量,其名称WEBSITE_TIME_ZONEW. Europe Standard Time

在此处输入图像描述

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

于 2017-10-04T14:03:41.777 回答
2

@viperguynaz 是正确的,所有 Azure 都在 UTC 上运行。如果你在 Azure 中运行,那么你应该让它在 UTC 中运行,而不是试图规避它,因为那时有些东西表现得不是很好。相反,作为一名软件开发人员,您应该在应用程序中添加遵守时区和处理保存为 UTC 的数据和运行在 UTC 上的服务的能力。永远不要使用DateTime.Now,而是始终使用DateTime.UtcNow.

有关这方面的更多信息,请参阅此问题

于 2013-04-17T20:14:46.587 回答
1

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

于 2013-04-17T16:10:36.713 回答
0

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

tzutil /s "GMT Standard Time"

我们还没有看到任何问题,时间戳总是符合我们的预期。这似乎比确保代码中的每个 DateTime 交互都了解本地时间/时区要简单。

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

于 2013-04-20T10:34:39.623 回答