簡體   English   中英

DateTime將日期顯示為01/01/0001

[英]DateTime shows the date as 01/01/0001

對不起,如果這似乎是一個愚蠢的問題,但我無法在任何地方找到答案,我有點新手。 DateTime顯示為我猜測的最小日期。 例如:

DateTime updatedDate = new DateTime();
outItem.AddDate = updatedDate.ToLongDateString();

輸出到0001年1月1日。我嘗試了很多變化,結果相似。 我究竟做錯了什么?

這取決於你所說的“錯誤”。 new DateTime()確實具有與DateTime.MinValue相同的值。 如果你想要當前時間,你應該使用:

DateTime updatedDate = DateTime.Now;

要么

DateTime updatedDate = DateTime.UtcNow;

(第一個給你當地時間 ,第二個給你通用時間。當涉及到本地/普遍鴻溝時, DateTime 有些混亂 。)

如果您要獲取當前日期,請使用DateTime.Now 您正在創建日期類的新實例,最小值是其默認值。

DateTime updatedDate = DateTime.Now;
outItem.AddDate = updatedDate.ToLongDateString();

編輯:實際上,您只需執行以下操作即可縮短代碼:

outItem.AddDate = DateTime.Now.ToLongDateString();

Jon Skeet說的正確,我還有一些要補充。

“錯誤”取決於你想要的時間。

DateTime是一個struct ,是struct的默認構造函數

始終將所有字段初始化為數字類型的零並且為null

作為參考類型。

因此,如果要獲取當前的本地日期和時間,可以調用靜態屬性DateTime.Now。

   var curDateTime = DateTime.Now;

如果你想獲得UTC時間。

   var utcDateTime = DateTime.UtcNow;

注意:DateTime.UtcNow獲取當前日期和時間,但它不使用本地時區,而是使用UTC時間。

您可以參考以下鏈接。

http://blackrabbitcoder.net/archive/2010/11/18/c.net-little-wonders-datetime-is-packed-with-goodies.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM