将"29.07.2022"格式字符串转为DateTime报错,如何解决?
日期字符串转DateTime的正确方法
你遇到的错误核心原因是格式字符串使用错误:mm是分钟的格式符,而你需要的月份对应的格式符是大写的MM。原代码里的小写mm导致解析逻辑混乱,所以抛出了「String was not recognized as a valid DateTime」异常。
正确的转换代码
直接修正格式字符串即可完成转换:
DateTime date = DateTime.ParseExact("29.07.2022", "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture);
更健壮的最佳实践
在实际开发中,推荐使用TryParseExact方法,它不会在转换失败时抛出异常,而是通过返回值告知转换结果,更适合处理不确定的输入场景:
if (DateTime.TryParseExact("29.07.2022", "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out DateTime date)) { // 转换成功,可在此处使用date变量 } else { // 转换失败,执行错误处理逻辑(比如提示输入格式错误) }
内容的提问来源于stack exchange,提问作者LYOUSFI Marouane
相关产品推荐
相关产品推荐

