-2

次の簡単なコードがあります...

Console.WriteLine(default(DateTime).Date.ToString("U"));

表示されるテキストは (スペイン語のインストールがあります): "lunes, 01 de enero de 0001 3:00:00"

0 時間ではなく 3 時間で始まるのはなぜですか? それはバグですか?

4

1 に答える 1

2

タイムマシンを持っていないか、本当にDateTimeバグがない限り、それはあなたが投稿したコードの出力ではありません.DateTime.Now

あなたのコードは実際DateTime.MinValueに(または)を使用してnew DateTime()いると思われます。午前 3 時と表示されている理由は (ドキュメントによると):

柄は「F」柄と同じです。ただし、DateTime 値は、フォーマットされる前に自動的に UTC に変換されます。

つまり、現地時間 0001 年 1 月 1 日の午前 0 時が UTC 午前 3 時のタイム ゾーンにいると思われます。(DateTimeZone.MinValueの「種類」がUnspecifiedあるため、UTC に変換するように求められたときにローカルとして扱われます。この領域の周りDateTime少し混乱しています。)

于 2012-07-06T21:26:05.130 に答える