DateTime.Parse和Convert.ToDateTime之间有什么区别?

时间:2011-11-19 07:09:41

标签: c# asp.net

之间有什么区别吗?
Convert.ToDateTime

DateTime.Parse

哪一个更快或哪个更安全?

4 个答案:

答案 0 :(得分:29)

answer on another forum from Jon Skeet ...

  

Convert.ToDateTime在内部使用DateTime.Parse和当前   文化 - 除非你传递null,在这种情况下它返回   DateTime.MinValue。

如果您不确定字符串是否是有效的DateTime,请不要使用,而是使用DateTime.TryParse()

如果您确定字符串是有效的DateTime,并且您知道格式,则还可以考虑DateTime.ParseExact()或DateTime.TryParseExact()方法。

答案 1 :(得分:2)

DateTime.Parse有一个重载,只需要一个String而没有其他内容,它会使用当前的Locale信息,而不必将其传入。

答案 2 :(得分:1)

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);
}

答案 3 :(得分:0)

DateTime.Parse将在传递空字符串时抛出ExceptionConvert.ToDateTime在传递空值时将返回DateTime.MinValue