Чтобы проанализировать эту точную строку, вы должны использовать это выражение:
TimeSpan.ParseExact(input, @"%m' min '%s' sec'", CultureInfo.InvariantCulture)
По сути, вы обрабатываете любой текст, кроме тех, где цифры литеральные разделители, указанные с использованием синтаксиса 'xxx'
.
Если вы считаете, что вам может понадобиться обрабатывать как min
и mins
, так и sec
и secs
, вам необходимо использовать перегрузку с несколькими форматами:
string[] formats = new[]
{
"%m' min '%s' sec'",
"%m' mins '%s' sec'",
"%m' min '%s' secs'",
"%m' mins '%s' secs'"
};
TimeSpan.ParseExact(input, formats, CultureInfo.InvariantCulture)
И вопреки тому, что, по вашему мнению, указано в документации, вам не нужно указывать дни или часы вообще, это совершенно законно:
TimeSpan ts = TimeSpan.FromMilliseconds(45);