次の簡単なコードがあります...
Console.WriteLine(default(DateTime).Date.ToString("U"));
表示されるテキストは (スペイン語のインストールがあります): "lunes, 01 de enero de 0001 3:00:00"
0 時間ではなく 3 時間で始まるのはなぜですか? それはバグですか?
タイムマシンを持っていないか、本当にDateTime
バグがない限り、それはあなたが投稿したコードの出力ではありません.DateTime.Now
あなたのコードは実際DateTime.MinValue
に(または)を使用してnew DateTime()
いると思われます。午前 3 時と表示されている理由は (ドキュメントによると):
柄は「F」柄と同じです。ただし、DateTime 値は、フォーマットされる前に自動的に UTC に変換されます。
つまり、現地時間 0001 年 1 月 1 日の午前 0 時が UTC 午前 3 時のタイム ゾーンにいると思われます。(DateTimeZone.MinValue
の「種類」がUnspecified
あるため、UTC に変換するように求められたときにローカルとして扱われます。この領域の周りDateTime
は少し混乱しています。)