DateTime dt = DateTime.ParseExact("1122010", "Mddyyyy", System.Globalization.CultureInfo.CurrentCulture);
抛出此异常:String未被识别为有效的DateTime。
我确信本月缺少领先0。什么是正确的格式字符串?
答案 0 :(得分:12)
我建议使用格式“MMddyyyy”并确保输入参数至少包含8个字符。例如:
DateTime dt = DateTime.ParseExact("1122010".PadLeft(8, '0'), "MMddyyyy", System.Globalization.CultureInfo.CurrentCulture);
如果您使用的是本月缺少前导0的数据源,则会在需要时添加。
答案 1 :(得分:4)
问题是你没有给ParseExact足够的信息来使用。
“M”表示1或2位数月份。但是你的字符串以“1122”开头。是1月12日还是11月22日?
正如安东尼所示,唯一的解决方案是在需要时用0填充。
答案 2 :(得分:1)
单个“M”格式字符串是不可接受的,因为并非所有月份都可以用单个数字或字符唯一地表示。如前所述,您必须使用“MMddyyyy”并在必要时填充左侧字符串。