Подтвердить что ты не робот

Любая разница между DateTime.Parse и Convert.ToDateTime?

Есть ли разница между

Convert.ToDateTime

и

DateTime.Parse

Какой из них быстрее или безопаснее использовать?

4b9b3361

Ответ 1

В ответ на ответьте на другой форум от Jon Skeet...

Convert.ToDateTime использует DateTime.Parse внутренне, с текущим культура - если вы не передадите ее null, и в этом случае она вернется DateTime.MinValue.

Если вы не уверены, что строка является допустимым DateTime, не используйте ни то, ни другое вместо этого используйте DateTime.TryParse()

Если вы уверены, что строка является допустимой DateTime, и вы знаете формат, вы также можете рассмотреть методы DateTime.ParseExact() или DateTime.TryParseExact().

Ответ 2

DateTime.Parse имеет перегрузку, которая принимает только один String, и ничего больше, и она использует текущую информацию Locale, не передавая ее.

Ответ 3

Перегрузки Convert.ToDateTime, которые принимают строку в качестве входного параметра, внутренне вызывается DateTime.Parse. Ниже приведена реализация Convert.ToDateTime.

public static DateTime ToDateTime(string value)
{
    if (value == null)
    {
        return new DateTime(0L);
    }
    return DateTime.Parse(value, CultureInfo.CurrentCulture);
}

В случае другой перегрузки параметр вводится в интерфейс IConvertible, а затем вызывается соответствующий метод ToDateTime.

public static DateTime ToDateTime(ushort value)
{
    return ((IConvertible) value).ToDateTime(null);
}

Ответ 4

DateTime.Parse выдаст Exception, когда будет передана нулевая строка, Convert.ToDateTime вернет DateTime.MinValue при передаче нулевого значения.