TimeSpan.ParseExact("000000.000", " hmmss.fff

本文关键字:quot hmmss fff 000000 ParseExact TimeSpan | 更新日期: 2023-09-27 17:50:51

我想设置两个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 timestamp = TimeSpan.ParseExact(splitline[1], "hhmmss.fff", CultureInfo.CurrentCulture);
 time = timestamp.Subtract(lasttimestamp);

为什么它不喜欢格式化中的。fff部分导致"输入字符串格式不正确" ?

我已经尝试过DateTime,但在执行减法时无法将TimeSpan转换为DateTime。

谢谢

TimeSpan.ParseExact("000000.000", " hmmss.fff

您需要在您的格式中转义.,如@"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);