2011-11-19 172 views

回答

24

每一个answer on another forum from Jon Skeet ...

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

如果你不知道字符串是有效的日期时间,既不使用,转而使用DateTime.TryParse()

如果你确定该字符串是有效的日期时间,你知道的格式,你也可以考虑DateTime.ParseExact()或DateTime.TryParseExact()方法。

+2

“简而言之,Convert.ToDateTime()消除了设置CultureInfo所需的代码,您必须使用DateTime.Parse() “ 这不是事实。您不必将CultureInfo设置为使用DateTime.Parse()。 DateTime.Parse有一个只有1个字符串的重载,没有别的,它使用当前的文化信息,而不必传入它。 – Nick

+0

@Nick - 你是对的。谢谢!我编辑了这个。 – David

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

DateTime.Parse具有重载,只需要一个String没有别的,它采用了目前Locale信息,您无需将它传递

相关问题