C# Core 6使用DateTime.ParseExact转换日期字符串抛FormatException求助
问题解决方法
核心问题分析
- 格式符使用错误:你用的
HH是24小时制格式标识,但目标字符串是12小时制时间(带AM后缀),需替换为hh(12小时制格式符)。 - 文化参数缺失:传入
null作为文化参数时,会使用当前系统的区域设置,若系统文化不识别AM/PM(比如中文系统默认用“上午/下午”),会直接导致解析失败,必须指定**不变文化(InvariantCulture)**来统一解析规则。
修改后的可运行代码
string Dt_format = "yyyy-MM-dd hh:mm:ss tt"; string s = "2023-07-13 08:36:20 AM"; DateTime.ParseExact(s, Dt_format, System.Globalization.CultureInfo.InvariantCulture);
关键格式符说明
HH:对应24小时制时间(范围00-23),无需搭配AM/PM后缀hh:对应12小时制时间(范围01-12),必须配合tt标识AM/PM
内容的提问来源于stack exchange,提问作者Kw6732
相关产品推荐
相关产品推荐

