2

だから私は過去4時間この問題を理解しようとしてきました。DateTime.Now on Windows Azureは2013年1月10日ですが、現地時間は2013年1月9日です。私は、UTCを実行してDateTime.Now.ToLocalTime()を呼び出して整列させるために本のすべてを試しましたが、それでも問題を解決できません。

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(グリニッジ標準時)で動作します。たとえば、アリゾナはUTC-7時間なので、UTCを取得するために現地時間に7時間を追加します。Azureポータルとブラウザーは現地時間に合わせて調整される場合がありますが、コードでDateTime.Nowを使用する場合は、DateTime.Now.UTCを使用する必要があります。Azureで実行されているアプリのユーザー表示を調整する場合は、次を追加します。 TimeZoneOffset(つまり、-7)のServiceConfiguration設定で、DateTime.Now.AddHours(TimeZoneOffset)を表示します。

于 2013-01-10T07:15:19.533 に答える
0

現在、Windows Azure VMはUTCを使用しており、使用していなくても、同じタイムゾーンを使用することを期待するべきではありません。

分散アプリケーションでは、UTCをできるだけ頻繁に使用すると、面倒な作業を大幅に節約できます。UTCを使用できない場合は、UTCを現地時間と一緒に使用するか、現地時間のみを使用しますが、毎回現地時間を使用します。現在のタイムゾーンを具体的に知っておく必要があります。

これらの考慮事項を無視すると、2555年に自分自身を見つけることもできます(冗談ではありません-それは本当です)

于 2013-01-10T08:08:31.110 に答える
0

Windows Azureマシンを使用するのはあなた次第なので、別のタイムゾーンが必要な場合は、すぐに設定してください。

最も簡単なアプローチは、非常に単純な起動タスクを作成し、Windowsタイムゾーンユーティリティであるtzutilを使用することです。以下を使用します。

tzutil /s "GMT Standard Time"

これは、デフォルトでWindows Server2008R2またはWindowsServer2012イメージにのみインストールされます。

詳細はこちら:http ://wely-lau.net/2011/06/26/setting-timezone-in-windows-azure-3/

于 2013-01-12T00:48:41.197 に答える