C# ParseExact 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 ответ
Решение
С 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);