C#ParseExact TimeSpan无法识别

时间:2015-07-25 13:48:48

标签: c# timespan

我有一个简单的arrayData字符串,我正在尝试运行TimeSpan.ParseExact,我收到的格式错误无效。对于我的生活,我无法弄清楚我出了什么问题,这让我感到疯狂

string arrayData = "00:02:02.4000000";
string[] formats = new string[] {
  @"s\.f",
  @"ss\.f",
  @"ss\.ff",
  @"m\:ss\.f",
  @"m\:ss\.ff",
  @"mm\:ss\.ff",
  @"hh\:mm\:ss\.ff",
  @"dd\.hh\:mm\:ss"
};

CultureInfo culture = new CultureInfo("en-US");

TimeSpan _timeSpan = TimeSpan.ParseExact(arrayData, formats, culture.NumberFormat);

1 个答案:

答案 0 :(得分:2)

使用ParseExact,您需要指定确切的格式。在您的情况下,您需要允许七个小数秒,而不仅仅是两个。

string arrayData = "00:02:02.4000000";
string[] formats = new string[] { 
    @"s\.f",
    @"ss\.f",
    @"ss\.ff",
    /* ... */ 
    @"hh\:mm\:ss\.fffffff"   // <- missing format
};
TimeSpan _timeSpan = TimeSpan.ParseExact(arrayData, formats, CultureInfo.InvariantCulture);