C# 如何将字符串解析为timespan

C# 如何将字符串解析为timespan,c#,parsing,timespan,days,C#,Parsing,Timespan,Days,我想将文本字符串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

我想将文本字符串
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);

这对任何人都适用。

在格式化和解析方面有两个因素:

  • 价值究竟是多少
  • 我在什么文化中
对于第一个,添加一个变量:

string s = dt.Rows[i]["karkard"].ToString();
TimeSpan t = TimeSpan.Parse(s);
并找出调试器中的
s
。如果我们假设它真的是
“0:4:54:28”
,那么这对我来说很好,这意味着文化。您可以通过重载覆盖区域性:

TimeSpan t = TimeSpan.Parse(s, CultureInfo.InvariantCulture);

这应该适用于任何人。

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()
然后解析结果几乎总是一个坏主意。。。通常,最好是转换到正确的类型并使用它。karkard列中的对象是什么类型?换句话说,
dt.Rows[i][“karkard”].GetType().FullName
say?
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()
然后解析结果几乎总是一个坏主意。。。通常,最好是转换到正确的类型并使用它。karkard列中的对象是什么类型?换句话说,
dt.Rows[i][“karkard”].GetType().FullName
say?亲爱的Marc Gravell:我可以从您的回答中得到响应,请帮助我从“天:小时:分钟:秒”解析到timespan亲爱的Marc Gravell:我可以从你的回答中得到回应,请帮助我从“天:小时:分钟:秒”解析到timespan