0

グリニッジ標準時 (GMT) である UTC 0 時刻を取得したい。

DateTime.UtcNow と DateTime.Now.ToUniversalTime() を試してみましたが、間違った時間が返されます。06:40 ではなく 22:40 を返す

C# で UTC/GMT 時刻を取得するにはどうすればよいですか?

4

1 に答える 1

3

私はしようとDateTime.UtcNowDateTime.Now.ToUniversalTime()ますが、間違った時間を返します。

いいえ、そうではありません。(ただし、後者ではなく前者を使用することを強くお勧めします。一般に、現地時間から UTC への変換は、夏時間への移行のためにあいまいになる可能性があります。この特定のケースでは、正しいことを行う可能性UtcNowがあると思いますが、より良い方法ですアプローチ。)

DateTime.UtcNow 現在の UTC 時刻を返します間違った結果が得られる場合は、システム クロックが間違っているか、値の他の変換をどこかで実行しています (たとえば、書式設定の一部として現地時間に変換しています)。

基本的に、正しいプロパティを使用しているため、結果がどこで間違っているかを正確に診断する必要があります。

小さなコンソールアプリから始めることをお勧めします。

class ShowTimes
{
    static void Main()
    {
        Console.WriteLine("Local time: {0}", DateTime.Now);
        Console.WriteLine("UTC time: {0}", DateTime.UtcNow);
    }
}

それは何を示していますか、そしてあなたはどのタイムゾーンにいますか?

于 2012-10-17T06:47:35.270 に答える