无法识别C#ParseExact TimeSpan

无法识别C#ParseExact TimeSpan,c#,timespan,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\:m

我有一个简单的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);
string arrayData=“00:02:02.4000000”;
字符串[]格式=新字符串[]{
@“s\.f”,
@“ss\.f”,
@“ss\.ff”,
/* ... */ 

@“hh \:mm \:ss\.fffffffff”//您是否应该尝试区域性。DateTimeFormat?格式字符串是否需要%符号(%m,%h等)?使用“c”,,,,,,,,,,,,作为格式说明符,Timespan的格式字符串与dates@adelphus不,它们不允许。允许指定
%
来消除歧义,但它们不要求这样做。