У кого-нибудь есть идеи, почему это не удается? Мне удалось обойти это с помощью ParseExact, но я хотел бы понять, почему он терпит неудачу.C# DateTime.Parse Error
DateTime test = DateTime.Parse("Dec 24 17:45");
Даты < «Дек 24» отлично работает. Даты> = Dec 24 потерпит неудачу с этой ошибкой:
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll Additional information: The DateTime represented by the string is not supported in calendar System.Globalization.GregorianCalendar.
EDIT: Благодаря Хабиб для заметив даже, когда я не получаю сообщение об ошибке не было результатом я ожидал. Поэтому будьте осторожны с DateTime.Parse, когда они не используются в поддерживаемых форматах!
Вот что я сделал, чтобы исправить проблему. Мне нужно обрабатывать только два разных формата. В текущем году будет «МММ дд чч: мм» в противном случае было бы «МММЫ гггг»
if (!DateTime.TryParseExact(inDateTime, "MMM dd HH:mm", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces,out outDateTime))
{
if (!DateTime.TryParseExact(inDateTime, "MMM dd yyyy", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces, out outDateTime))
{
//Handle failure to Parse
}
}
Можете ли вы показать нам точный код, который вы пытались выполнить? –
Это хороший вопрос. –
@ A.Abramov - ОП включил в себя почти все, что нужно. –