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()'然后解析结果几乎总是一个坏主意......通常最好转换为正确的类型并使用它。 –