C# TimeSpan.ParseExact负时间

C# TimeSpan.ParseExact负时间,c#,parsing,timespan,negative-number,C#,Parsing,Timespan,Negative Number,我正试图用c#TimeSpan来解析正负时间的混合,使用以下示例行: TimeSpan.TryParseExact("-4:-41:-4.102276", @"[\-]H\:[\-]m\:[\-]s.ffffff", enUS, out time) 不幸的是,这没有返回任何有用的信息。它只是失败并将时间设置为0:0:00 帮助?如果“负值”值在每个组件前面总是有-,您可以查找符号并使用两种不同的格式字符串: TimeSpan ts; string s = "-4:-41:-4.102276";

我正试图用c#
TimeSpan
来解析正负时间的混合,使用以下示例行:

TimeSpan.TryParseExact("-4:-41:-4.102276", @"[\-]H\:[\-]m\:[\-]s.ffffff", enUS, out time)
不幸的是,这没有返回任何有用的信息。它只是失败并将
时间设置为
0:0:00

帮助?

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

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);

-4:-41
-4:41
有何不同?
-4:-41
是否表示
-3:19
?在什么上下文中?你到底想解决什么问题?没有消极的时间跨度;时间跨度就是时间跨度。4分钟和负4分钟有什么区别?@AntP嗯,
-4:41:4.102276
是有意义的,不能用标准方法解析。但每一部分都有否定的符号。。。从未见过这种情况。@AntP-有负时间跨度这样的东西-请参见
timespan.MinValue
timespan.Duration
@Ulugbek我无法格式化时间戳。它是由一个外部程序生成的,非常简单。我要了。谢谢我认为您在第二条解析语句中意外地留下了额外的转义字符。