我正在尝试使用以下C#代码将字符串转换为日期时间:
DateTime dTo = DateTime.ParseExact(dateTo, "mm/dd/yyyy", CultureInfo.InvariantCulture);
每次我将 dateTo 设为 1/1/2010 时,它都会失败,相反,它需要字符串为 01/01/2010。
我应该使用什么字符串格式来支持 01/01/2010 和 1/1/2010 两者?
我正在尝试使用以下C#代码将字符串转换为日期时间:
DateTime dTo = DateTime.ParseExact(dateTo, "mm/dd/yyyy", CultureInfo.InvariantCulture);
每次我将 dateTo 设为 1/1/2010 时,它都会失败,相反,它需要字符串为 01/01/2010。
我应该使用什么字符串格式来支持 01/01/2010 和 1/1/2010 两者?
使用以下日期格式表达式可以让你使用单个或双个数字的日和月份。
"M/d/yyyy"
请注意大写字母M
的重要性 - 小写字母m
是分钟的占位符。[DateTime]::ParseExact('01/01/2010', 'M/d/yyyy', $null)
大写字母 M 表示月份,小写字母 m 可能是分钟。
但是回到问题的要点,使用 Parse。ParseExact 意味着您知道输入的确切格式。
MM/dd/yyyy
,但我认为没有一个单一的格式字符串可以支持你所需要的两种输入。你可以测试一下你的dateTo
字符串的长度是否小于10个字符,如果是,则使用M/d/yyyy
,否则使用MM/dd/yyyy
。