之间有什么区别吗?
Convert.ToDateTime
和
DateTime.Parse
哪一个更快或哪个更安全?
答案 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
将在传递空字符串时抛出Exception
,Convert.ToDateTime
在传递空值时将返回DateTime.MinValue
。