TimeSpan.ParseExact负时间

时间:2014-04-22 18:38:05

标签: c# parsing timespan negative-number

我尝试使用此示例行解析c#TimeSpan的正面和负面时间组合:

TimeSpan.TryParseExact("-4:-41:-4.102276", @"[\-]H\:[\-]m\:[\-]s.ffffff", enUS, out time)

不幸的是,这并没有任何有用的东西。它刚刚失败,并将time设置为0:0:00

帮助?

1 个答案:

答案 0 :(得分:2)

如果“负”值始终在每个组件之前都有-,您可以查找该符号并使用两种不同的格式字符串:

TimeSpan ts;
string s = "-4:-41:-4.102276";
if(s.StartsWith("-"))
    ts = -TimeSpan.ParseExact(s, @"\-h\:\-m\:\-s\.ffffff", enUS);
else
    ts = TimeSpan.ParseExact(s, @"h\:m\:s\.ffffff", enUS);