Вы используете, какой бы ни была идея современной культуры о формате даты / времени - и я предполагаю, что вы находитесь в культуре, где день обычно наступает раньше месяца.
Если вы знаетеформат, я бы обычно использовал инвариантную культуру и TryParseExact
- определенно не используйте Parse
и блок catch;либо используйте TryParseExact
или TryParse
.В этом случае:
if (DateTime.TryParseExact(dateString, "M/d/yyyy hh:mm:ss tt",
CultureInfo.InvariantCulture, 0, out dateValue))
{
Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
}
else
{
Console.WriteLine("Unable to convert '{0}'.", dateString);
}
Если вы не знаете формат ввода, но знаете, какую культуру использовать, я бы просто использовал DateTime.TryParse
с соответствующей культурой.