我需要将我的字符串转换为c#中的时间跨度,这是我的字符串52:13:27.0000000
当我尝试Timespan.parse时,它给出了错误
无法解析TimeSpan,因为至少有一个数字 组件超出范围或包含太多数字。
请帮忙! 感谢
答案 0 :(得分:4)
TimeSpan.Parse()
接受Days:Hours:Minutes:Seconds:Miliseconds
如果您想要超过24小时,则需要添加一天。
在您的具体情况下,它应该类似于以下内容:
TimeSpan.Parse("2:04:13:27.0000000");
答案 1 :(得分:2)
您可以做的是通过执行以下操作将小时数转换为几天:
string x = "52:13:27.000";
TimeSpan ts = new TimeSpan(int.Parse(x.Split(':')[0]), // hours
int.Parse(x.Split(':')[1]), // minutes
int.Parse(x.Split(':')[2].Split('.')[0] ) // seconds
);
期望输出:
答案 2 :(得分:0)
Timespan.parse正在提供错误,因为它不能采取
hours>23
minutes>59
seconds>59
/*Parsing string format with above conditions "hh:mm:ss:miliseconds"*/
Timespan.parse("hh:mm:ss:miliseconds");
以这种格式你不会得到例外
string str = "52:13:27.0000000";
int hours = Convert.ToInt32(str.Substring(0,2));
int minutes = Convert.ToInt32(str.Substring(3, 2));
int seconds = Convert.ToInt32(str.Substring(6, 2));
string miliseconds= (str.Substring(str.IndexOf('.')+1,str.Length-str.IndexOf('.')-1));
TimeSpan sp = TimeSpan.FromHours(hours);
TimeSpan interval = TimeSpan.Parse(sp .Days+ ":"+sp.Hours+":"+minutes+":"+seconds+"."+
miliseconds);