C# ParseExact TimeSpan 无法识别

C# ParseExact TimeSpan not recognized

我有一个简单的 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);

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