奇怪的Convert.ToDateTime行为

Moo*_*oon 2 .net c# datetime

为什么Convert.ToDateTime对以下值表现奇怪?

以下工作正常:

var value = "08/01/2011";
var dateTime = Convert.ToDateTime(value);
Run Code Online (Sandbox Code Playgroud)

结果是:{08/01/2011 00:00:00}---这是预期的.

但现在,当我这样做时:

var value = "07/21/2011";
var dateTime = Convert.ToDateTime(value);
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

'Convert.ToDateTime("07/21/2011")' threw an exception of type 'System.FormatException'

Bro*_*ass 6

"07/21/2011";
Run Code Online (Sandbox Code Playgroud)

这不是有效日期,因为21将被解释为月份.

尝试明确指定格式:

DateTime myDate = DateTime.ParseExact("07/21/2011", "MM/dd/yyyy", 
                                      CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

编辑:

同意@ dtb的评论 - 我找不到你指定的日期合法的文化.但一般形式是:

DateTime myDate = Convert.ToDateTime("07/21/2011", new CultureInfo("XXX"))
Run Code Online (Sandbox Code Playgroud)

XXX您要使用的文化的名称在哪里(即"en-GB" - 虽然这不适用于此格式)