[英]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.