2

所以在过去的 4 个小时里,我一直在试图解决这个问题。Windows Azure 上的 DateTime.Now 是 2013 年 1 月 10 日,而本地时间是 2013 年 1 月 9 日。我已经尝试了书中的所有内容以使其对齐调用 DateTime.Now.ToLocalTime(),执行 UTC,但我仍然无法解决问题。

4

4 回答 4

2
 private DateTime ConvertToCentral()
        {
            DateTime timeUtc = DateTime.UtcNow;
            TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
                 DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);
            return cstTime;
        }
于 2013-01-10T07:18:23.420 回答
1

答案与 Gaurav 发布的相同 - Azure 服务器在 UTC(格林威治标准时间)上运行,而不是您的当地时间。例如,Arizona 是 UTC - 7 小时,因此我们将本地时间添加 7 小时以获得 UTC。Azure 门户和浏览器可能会根据您的本地时间调整一些时间,但是在代码中使用 DateTime.Now 时,您需要使用 DateTime.Now.UTC - 如果您想调整在 Azure 中运行的应用程序的用户显示,然后添加TimeZoneOffset 的 ServiceConfiguration 设置(即 -7)并显示 DateTime.Now.AddHours(TimeZoneOffset)。

于 2013-01-10T07:15:19.533 回答
0

Windows Azure 机器供您使用,因此如果您想要不同的时区,请直接进行设置。

最简单的方法是创建一个非常简单的启动任务并使用tzutil,即 Windows 时区实用程序。我们使用以下内容:

tzutil /s "GMT Standard Time"

默认情况下,它仅安装在 Windows Server 2008 R2 或 Windows Server 2012 映像上。

完整的细节在这里:http ://wely-lau.net/2011/06/26/setting-timezone-in-windows-azure-3/

于 2013-01-12T00:48:41.197 回答
0

当前 Windows Azure VM 使用 UTC,即使它们不使用,您也不应该期望它们使用与您相同的时区。

在分布式应用程序中,如果您尽可能频繁地使用 UTC,并且在您不能使用 UTC 的情况下,您可以将 UTC 与本地时间一起使用或单独使用本地时间,但每次您使用本地时间时,您会省去很多麻烦你应该具体知道你所在的时区。

如果您忽略这些考虑,您也可以在 2555 年找到自己(不是开玩笑——这是真的)

于 2013-01-10T08:08:31.110 回答