簡體   English   中英

C#日期時間到字符串的默認值

[英]c# datetime to string for default values

我已經閱讀了很多有關可空的DateTime和字符串格式的主題。

就我而言,我“只是”想將default(DateTime) ,即DateTime.MinValue與轉換為字符串時的任何其他值區分開。 輸出應該是以下邏輯的結果:

string res = myDateTime == DateTime.MinValue ? string.Empty : myDateTime.ToString("MM/dd/yyyy");

我知道對於數字,我們有一種非常方便的方式來定義要根據值顯示的內容-我們可以不同地處理正值,負值和0值,甚至更好的是,顯示掩碼應用了舍入功能

String.Format("{0:#,#####0.00;#;#}", 0.001)

將顯示一個空字符串,這恰好是我想要的日期。 那么,周圍有這樣一種神奇的格式化字符串嗎? 或任何其他解決方法?

您似乎在詢問有關; 節分隔符 -對自定義數字格式字符串有效。 沒有什么神奇的。 它具有特定的實現,僅適用於數字數據類型。 不幸的是, 自定義日期和時間格式字符串中沒有類似的分隔符。

如果使用可為空的類型,則DateTime? 您將在沒有任何條件邏輯的情況下獲得所需的輸出。

DateTime? dt;
string.Format("{0:MM/dd/yyyy}", dt)  // ""

dt = DateTime.Now;
string.Format("{0:MM/dd/yyyy}", dt)  // "03/29/2017"

但是,如果沒有空值,則必須使用條件邏輯。

DateTime dt;
string.Format("{0}", dt == default(DateTime) ? "" : dt.ToString("MM/dd/yyyy"))

暫無
暫無

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

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