Windows Azure DateTime现在关闭1天与本地相比

时间:2013-01-10 04:07:16

标签: azure

所以我一直试图在过去的4个小时内找出这个问题。 Windows Azure上的DateTime.Now是1/10/2013 Vs当地时间是1/09/2013。我已经尝试了书中的所有内容,让它调整DateTime.Now.ToLocalTime(),做UTC但我仍然无法解决问题。

4 个答案:

答案 0 :(得分:2)

 private DateTime ConvertToCentral()
        {
            DateTime timeUtc = DateTime.UtcNow;
            TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
                 DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);
            return cstTime;
        }

答案 1 :(得分:1)

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

答案 2 :(得分:0)

目前,Windows Azure虚拟机使用UTC,即使它们不使用,也不要指望它们使用与您相同的时区。

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

如果忽略这些注意事项,您也可以find yourself in year 2555 (not a joke - that's for real)

答案 3 :(得分:0)

Windows Azure计算机适合您使用,因此如果您需要不同的时区,请立即进行设置。

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

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/