TimeSpan.ParseExact(" 000000.000"," hhmmss.fff",CultureInfo.CurrentCulture);输入字符串格式不正确C#?

时间:2015-05-26 17:55:50

标签: c#

我想设置两个TimeSpans lasttimestamp和time并将它们设置为0,如下所示:

        TimeSpan lasttimestamp = TimeSpan.ParseExact("000000.000","hhmmss.fff",CultureInfo.CurrentCulture);
        TimeSpan time = TimeSpan.ParseExact("000000.000", "hhmmss.fff", CultureInfo.CurrentCulture);   

然后在稍后的while循环中,我希望将时间戳设置为日志文件中的值,格式为hhmmss.fff,并从lasttimestamp timespan中减去它:

TimeSpan timestamp = TimeSpan.ParseExact(splitline[1], "hhmmss.fff", CultureInfo.CurrentCulture);
 time = timestamp.Subtract(lasttimestamp);

怎么不喜欢格式化中的.fff部分导致"输入字符串的格式不正确" ?

我已尝试使用DateTime但是在执行减法时无法将TimeSpan转换为DateTime。

谢谢

1 个答案:

答案 0 :(得分:1)

您需要以.

等格式转义@"hhmmss\.fff"
 TimeSpan lasttimestamp = TimeSpan.ParseExact(@"000000.000", 
                            @"hhmmss\.fff", CultureInfo.CurrentCulture);

但是,您应该使用TimeSpan.Zero设置零时间戳,如:

TimeSpan lastTimeSpanZero = TimeSpan.Zero;

两者都会返回相同的值。

(lasttimestamp == lastTimeSpanZero) == true

稍后,在您的解析中转义.

TimeSpan timestamp = TimeSpan.ParseExact(splitline[1], 
                          @"hhmmss\.fff", CultureInfo.CurrentCulture);