使用DateTime.TryParseExact解析"dd MMMM, yyyy"格式失败,求排查原因
问题原因与解决方案
你的解析失败核心问题是格式字符串错误地用单引号包裹了整个日期模式,这会让TryParseExact把'dd MMMM, yyyy'当成字面文本去匹配输入,而非解析日期的规则。
修正后的代码
DateTime result; if (DateTime.TryParseExact("31 December, 2023", ["dd MMMM, yyyy"], CultureInfo.InvariantCulture, DateTimeStyles.None, out result)) { // 解析成功 } else { // 解析失败 }
关键说明
- 格式字符串
"dd MMMM, yyyy"完全匹配你的输入:dd:两位数字的日期(对应31)MMMM:完整的月份名称(对应December,InvariantCulture下大小写和拼写完全匹配),:输入字符串中逗号加空格的字面量yyyy:四位数字的年份(对应2023)
- 你之前尝试的
"dd MMMM',' yyyy"写法其实也能生效(单引号用于转义逗号),但无需多余转义,直接使用"dd MMMM, yyyy"更简洁。
内容的提问来源于stack exchange,提问作者Nikkawat
相关产品推荐
相关产品推荐

