我的下一個簡單的代碼...是使用ToString(「U」)的.NET DateTime越野車嗎?
Console.WriteLine(default(DateTime).Date.ToString("U"));
的,發出的文字是(我有一個西班牙語語言安裝): 「lunes,01日enero日0001 3:00:00」
爲什麼從3小時開始,而不是0?這是一個錯誤?
我的下一個簡單的代碼...是使用ToString(「U」)的.NET DateTime越野車嗎?
Console.WriteLine(default(DateTime).Date.ToString("U"));
的,發出的文字是(我有一個西班牙語語言安裝): 「lunes,01日enero日0001 3:00:00」
爲什麼從3小時開始,而不是0?這是一個錯誤?
那麼除非你有一臺時間機器或DateTime
是真的越野車,這不是你發佈的代碼,它使用DateTime.Now
的輸出。
我懷疑你的代碼是真的使用DateTime.MinValue
(或new DateTime()
),而且你看到凌晨3點還在原因是(爲per the documentation):
的模式是一樣的「F 「模式。但是,格式化之前,DateTime值自動轉換爲UTC。
所以,我懷疑你是在一個時區,在當地時間凌晨3點凌晨3點午夜。 (DateTimeZone.MinValue
擁有的Unspecified
「厚道」,所以當被要求轉換爲UTC將被視爲本地。DateTime
是圍繞這方面bit of a mess)
謝謝喬恩!我的錯誤:我想說「DateTime.Now.Date」,現在已經在問題中解決了。是的!我在UTC - 4的位置(冬季時間調整一小時,我猜)。 – 2012-07-07 05:03:41
@NéstorSánchezA.:即使'DateTime.Now.Date'(它更簡單地寫成'DateTime.Today')也不應該是0001年1月1日。無論如何,很高興它現在全部排序。 – 2012-07-07 06:33:02
我認罪。收到的原始值是DateTime默認值。問題已更正。 – 2012-07-07 09:06:59
嗯,這是*不*'DateTime.Now'。你爲什麼不向我們展示你的真實代碼? – 2012-07-06 21:23:36
計算機上的當地時間是什麼? 「Now」包含小時/分鐘/秒,「U」格式說明符也是如此。 – Oded 2012-07-06 21:24:28
對不起,我簡化了代碼忘記把日期屬性(它只獲取日期部分,沒有時間)。 – 2012-07-07 05:00:56