[英]Error Message as “String was not recognized as a valid DateTime.”
我的代碼:
DateTime? birthDate = DateTime.Parse(filterDictionary.ContainsKey("DOB") ? filterDictionary["DOB"] : string.Empty);
我收到錯誤消息,因為“字符串未被識別為有效的DateTime。” 如何解決這個問題。 謝謝。
問題(至少其中一個)是您無法將空字符串解析為DateTime
。
將您的代碼行更改為此,以僅在找到密鑰時才移動解析,並在沒有密鑰時返回null而不是解析:
DateTime? birthDate = filterDictionary.ContainsKey("DOB") ? DateTime.Parse( filterDictionary["DOB"]) : (DateTime?) null;
另一個問題可能是您的字典DOB值實際上無法轉換為DateTime
。 如果以上代碼不起作用,請在filterDictionary["DOB"]
此錯誤時編輯您的問題,並將值發布到filterDictionary["DOB"]
。
當您使用空字符串顯示DateTime.Parse
時,它總是會失敗。
目前尚不清楚,你已經看到了這個時間是否已經一個地方出現了字典中的數據,但它是無效的,或者是否存在一直沒有數據,它的解析string.Empty
。 還請注意, DateTime.Parse
返回DateTime
,而不返回DateTime?
。 如果您想在條目不在字典中的情況下將該值設置為null
那么我實際上會使用:
DateTime? birthDate = null;
string dobText;
if (filterDictionary.TryGetValue("DOB", out dobText))
{
birthDate = DateTime.Parse(dobText);
}
也許:
string dobText;
DateTime? birthDay = filterDictionary.TryGetValue("DOB", out dobText)
? DateTime.Parse(dobText) : (DateTime?) null;
請注意,您需要在此處將第二或第三操作數中的至少一個強制轉換為null
,以便編譯器可以計算條件表達式的類型。
您還應該考慮對DateTime.Parse
的普通調用是否合適:
DateTime.ParseExact
TryParse
或TryParseExact
CultureInfo.InvariantCulture
的解析CultureInfo.InvariantCulture
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.