グリニッジ標準時 (GMT) である UTC 0 時刻を取得したい。
DateTime.UtcNow と DateTime.Now.ToUniversalTime() を試してみましたが、間違った時間が返されます。06:40 ではなく 22:40 を返す
C# で UTC/GMT 時刻を取得するにはどうすればよいですか?
私はしようと
DateTime.UtcNow
しDateTime.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);
}
}
それは何を示していますか、そしてあなたはどのタイムゾーンにいますか?