TimeSpan? Временной интервал - это просто период времени. «AM» показывает, что это определенное время, поэтому это не может быть промежуток времени. Или вы хотите проанализировать «9:00» без «AM» и получить в результате время 9 часов?
@ Ваш комментарий:
Вы можете использовать метод, который сделает это за вас. Вот простой пример реализации (вам нужно добавить лучшую проверку ввода, использовать лучшие методы преобразования, чем просто Convert.ToInt32 () и т. Д.):
public static TimeSpan GetTimeSpanFormString(string strString)
{
strString = strString.Trim();
string[] strParts = strString.Split(':', ' ');
int intHours, intMinutes;
if (strParts.Length != 3)
throw new ArgumentException("The string is not a valid timespan");
intHours = strParts[2].ToUpper() == "PM" ? Convert.ToInt32(strParts[0]) + 12 : Convert.ToInt32(strParts[0]);
intMinutes = Convert.ToInt32(strParts[1]);
return new TimeSpan(intHours, intMinutes, 0);
}