Ktoś ma pojęcie, dlaczego to się nie udaje? Byłem w stanie obejść to z ParseExact, ale chciałbym zrozumieć, dlaczego to się nie udaje.C# Błąd DateTime.Parse
DateTime test = DateTime.Parse("Dec 24 17:45");
Daty < "24 grudnia" działa dobrze. Terminy> = 24 gru niepowodzeniem z tego błędu:
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: Dzięki Habib dla zauważając nawet, kiedy nie pojawia się błąd, to nie był wynik spodziewałem. Dlatego należy zachować ostrożność przy korzystaniu z narzędzia DateTime.Parse, gdy nie jest ono obsługiwane w obsługiwanych formatach!
Oto, co zrobiłem, aby rozwiązać problem. Muszę obsługiwać tylko dwa różne formaty. Bieżący rok będzie „MMM dd hh: mm” w przeciwnym razie byłoby to „MMM dd rrrr”
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
}
}
Czy możesz pokazać nam dokładny kod, który próbowałeś wykonać? –
To dobre pytanie. –
@ A.Abramov - OP zawiera prawie wszystko, co jest potrzebne. –