Достойный разбор TimeSpan доступен только в .NET 4.0. Для более ранней версии вы можете перехватить методы синтаксического анализа DateTime, преобразовав дату в интервал времени с помощью свойства Ticks. Как это:
public static bool TryParseTime(string txt, string fmt, out TimeSpan ts) {
DateTime dt;
bool ok = DateTime.TryParseExact(txt, fmt, null,
System.Globalization.DateTimeStyles.NoCurrentDateDefault, out dt);
ts = new TimeSpan(ok ? dt.Ticks : 0);
return ok;
}
Требуется дополнительная работа, когда вам нужно проанализировать отрицательные промежутки времени.