試圖解析s
,我得到異常爲什麼我得到String未被識別爲有效的DateTime錯誤?
「字符串未被識別爲有效的DateTime」
string s = @"07/24/2014 14:46:47";
DateTime dt = DateTime.Parse(s);
試圖解析s
,我得到異常爲什麼我得到String未被識別爲有效的DateTime錯誤?
「字符串未被識別爲有效的DateTime」
string s = @"07/24/2014 14:46:47";
DateTime dt = DateTime.Parse(s);
DateTime myDate = DateTime.ParseExact("7/24/2014 14:46:47",
"MM/dd/yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
要添加,文檔包含以下關於'DateTime.Parse' - 「使用當前線程文化的格式約定,並基於DateTimeStyles.AllowWhiteSpaces樣式標誌」 – Sayse
解釋字符串我運行此代碼時得到相同的異常 – user829174
兩個upvotes?這不起作用。它使用'-'來解析包含'/'的字符串。 –
正如Sayse和斯利拉姆Sakthivel說,你需要在傳遞格式字符串將在
DateTime.ParseExact(s, "MM-dd-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
System.Globalization.CultureInfo provider =
System.Globalization.CultureInfo.InvariantCulture;
string dateTimeString = @"07/24/2014 14:46:47";
string dateTimeFormat = @"MM/dd/yyyy HH:mm:ss";
var dateTime = DateTime.ParseExact(dateTimeString, dateTimeFormat, provider);
相關鏈接:
你應該解釋爲什麼這會起作用。因爲'InvariantCulture'強制'/'作爲日期分隔符,即使當前文化使用不同的分隔符如'-'。否則'MM/dd/yyyy'會被轉換爲'MM-dd-yyyy'。爲防止.NET將特殊的'/'字符視爲自定義格式說明符,您必須使用'InvariantCulture'(如上所述)或使用轉義字符:'「MM \/dd \/yyyy HH:mm:ss」 ' –
@TimSchmelter,增加了文檔鏈接 – AndreyAkinshin
這裏是你的問題的最重要的問題;什麼是你的「CurrentCulture」? –