我创造了TimeSpan这种方式
TimeSpan ts = new Timespan();
// Do some addition and subtraction on it
Run Code Online (Sandbox Code Playgroud)
然后我使用它将它保存到文件中
string.Format("{0}:{1}:{2}:{3}", ts.Hours, ts.Minutes, ts.Seconds, ts.MilliSeconds);
Run Code Online (Sandbox Code Playgroud)
从它返回的各种值都是这样的
0:0:4:410
0:0:1:425
0:0:1:802
0:0:1:509
0:0:1:674
0:0:1:628
0:0:2:76
Run Code Online (Sandbox Code Playgroud)
如何将其转换回TimeSpan.
我在用
TimeSpan.ParseExact("0:0:4:410", "h:m:s:fff", null);
Run Code Online (Sandbox Code Playgroud)
但它给了我错误 Input String is not in correct format.
我哪里错了?
我相信你需要解析冒号,基本上.我还建议使用不变文化而不是当前的线程文化:
var ts = TimeSpan.ParseExact("0:0:4:410", @"h\:m\:s\:fff",
CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
从文档:
自定义TimeSpan格式说明符不包括占位符分隔符符号,例如将小时数与小时数,小时数与分数小时数或秒数与小数秒数分隔开的符号.相反,这些符号必须作为字符串文字包含在自定义格式字符串中.例如,"dd.hh:mm"将句点(.)定义为天和小时之间的分隔符,冒号(:)作为小时和分钟之间的分隔符.
我还建议使用一种格式h:mm:ss.fff- 我相信这比你当前的格式更清晰.请注意,您可以直接使用格式而不是当前的格式化方法:
const string TimeSpanFormat = @"h\:mm\:ss\.fff";
string text = ts.ToString(TimeSpanFormat, CultureInfo.InvariantCulture);
...
TimeSpan parsed = TimeSpan.ParseExact(text, TimeSpanFormat,
CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1984 次 |
| 最近记录: |