DateTime.ParseExact字符串格式exception

我正在尝试使用以下C#代码将字符串转换为datetime,

DateTime dTo = DateTime.ParseExact(dateTo, "mm/dd/yyyy", CultureInfo.InvariantCulture); 

每次我将dateTo传递给2010年1月1日它都会失败,而是需要字符串为01/01/2010。

我应该使用什么字符串格式来支持01/01/2010和1/1/2010?

使用以下日期格式表达式将允许您使用单个或两位数的日期和月份元素。

 "M/d/yyyy" 

请注意,大写字母M是重要的 – 小写字母m是分钟的占位符。

您将在此处找到与日期格式字符串相关的更多信息。

您可以使用以下Powershell命令来测试它们。

 [DateTime]::ParseExact('01/01/2010', 'M/d/yyyy', $null) 

资本M是月,我认为小米是分钟。

但就问题而言,请使用Parse。 ParseExact意味着您知道输入的确切格式。

您可以尝试这种格式: MM/dd/yyyy ,但我认为没有一种格式字符串可以支持这两种输入。 您可以测试dateTo字符串的长度是否小于10个字符使用M/d/yyyy ,否则为MM/dd/yyyy