Как я могу разобрать эту строку временного интервала?

У меня есть временной интервал: «P3M10DT5H2M». Я пытаюсь разобрать эти коды:

var timespan =  "P3M10DT5H2M"
string[] formats = new[] { "'PT's'S'", "'PT'm'M'", "'P'd'D'", "'PT'h'H'", "'P'd'DT'h'H'", "'P'd'DT'h'H'm'M'", "'PT'h'H'm'M'", "'P'd'DT'h'H'm'M's'S'", "'P'm'M'd'DT'h'H'm'M'" };
TimeSpan.ParseExact((string)timespan , formats, CultureInfo.InvariantCulture);

Но возникает эта ошибка: в mscorlib.dll произошло первое случайное исключение типа «System.FormatException».

Дополнительная информация: строка не была распознана как допустимый интервал времени.

Последний формат должен соответствовать этой строке, но не почему? А также другой вопрос, мой путь не так хорош. Потому что я должен написать все возможности в форматах. Итак, должен ли я использовать регулярные выражения вместо массива форматов. Помогите пожалуйста мне.


person Kle    schedule 16.09.2015    source источник
comment
переменные timespan и tmespan не совпадают.   -  person NeverHopeless    schedule 16.09.2015
comment
Я отредактировал сейчас, извините. Но это не из-за этого.   -  person Kle    schedule 16.09.2015
comment
Пожалуйста, проанализируйте P3M10DT5H2M вручную, чтобы мы знали, из каких частей он состоит. В частности, у вас есть две буквы M, что они означают?   -  person Ehsan88    schedule 16.09.2015
comment
Первый за месяц, другой за минуту. Время на самом деле 3 месяца, 10 дней, 5 часов, 2 минуты.   -  person Kle    schedule 16.09.2015
comment
Как вы настроили эти formats? Это стандартные форматы?   -  person NeverHopeless    schedule 16.09.2015
comment
Да, это строки .NET TimeSpans to ISO 8601 Duration.   -  person Kle    schedule 16.09.2015
comment
Вы рассматривали возможность использования System.Xml.XmlConvert.ToTimeSpan()?   -  person elimad    schedule 16.09.2015
comment
Посмотрите на этот поток: stackoverflow.com/questions/12466188/   -  person NeverHopeless    schedule 16.09.2015
comment
Да, я использовал System.Xml.XmlConvert.ToTimeSpan. Мне не нужно использовать форматы. Действительно спасибо...   -  person Kle    schedule 16.09.2015