1
我想文字串01:4:54:28
解析爲一個時間跨度,但我得到的錯誤如何解析字符串時間跨度
輸入的字符串不是正確的格式
代碼:
TimeSpan t = TimeSpan.Parse(dt.Rows[i]["karkard"].ToString());
我想文字串01:4:54:28
解析爲一個時間跨度,但我得到的錯誤如何解析字符串時間跨度
輸入的字符串不是正確的格式
代碼:
TimeSpan t = TimeSpan.Parse(dt.Rows[i]["karkard"].ToString());
在格式化和解析中有兩個因素起作用:
爲先,添加一個變量:
string s = dt.Rows[i]["karkard"].ToString();
TimeSpan t = TimeSpan.Parse(s);
,並找出s
是在調試器。如果我們假設它確實是"0:4:54:28"
,那麼對我來說工作正常,這表明文化。您可以通過超載重載文化:
TimeSpan t = TimeSpan.Parse(s, CultureInfo.InvariantCulture);
應爲人工作。
親愛的Marc Gravell:我可以從你的答案得到迴應請幫助我解析從「日:小時:分:秒」的時間跨度, – Shayan
var ts = TimeSpan.Parse(「0:4:54:28」);'對我很好,你是否可能在不同的時間格式文化中運行?另外,你是否確定該字符串是「0:4:54:28」?提示:將它讀入一個變量,以便調試它:var s = dt.Rows [i] [「karkard」]。ToString(); TimeSpan t = TimeSpan.Parse(s);'。注意:這裏「0.04:54.28」會更「正常」。 –
您也可以使用TimeSpan.TryParse而不是 –
'dt.rows [i] [「karkard」]'的價值是什麼?調用'ToString()'然後解析結果幾乎總是一個壞主意......通常最好轉換爲正確的類型並使用它。 –