我正在尝试使用以下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?
答案 0 :(得分:16)
使用以下日期格式表达式,您可以使用单个或两位数的日期和月份元素。
"M/d/yyyy"
请注意,大写M
很重要 - 小写m
是分钟的占位符。
您可以找到与日期格式字符串here相关的更多信息。
您可以使用以下Powershell命令对其进行测试。
[DateTime]::ParseExact('01/01/2010', 'M/d/yyyy', $null)
答案 1 :(得分:3)
资本M是月,我认为小米是分钟。
但就问题而言,请使用Parse。 ParseExact暗示您知道输入的确切格式。
答案 2 :(得分:1)
您可以尝试以下格式:MM/dd/yyyy
,但我认为没有单一格式字符串可以支持这两种输入。您可以使用dateTo
测试M/d/yyyy
字符串的长度是否小于10个字符,否则MM/dd/yyyy
。