如何解决C#中字符串转DateTime时的格式不匹配报错
日期解析失败的解决方法
问题根源
你的输入日期字符串是2026-05-24 18:54:55,格式为年-月-日 时:分:秒(对应格式符yyyy-MM-dd HH:mm:ss),但你使用的解析格式字符串是dd MMMM yyyy HH:mm:ss(对应日 完整月份名 年 时:分:秒),两者格式完全不匹配,导致解析报错。
正确解析代码
使用与输入字符串完全匹配的格式符即可成功解析:
string expiredDate = "2026-05-24 18:54:55"; DateTime myDate = DateTime.ParseExact(expiredDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
扩展:如果需要输出印尼语格式的日期
如果你的需求是将解析后的DateTime对象转换为dd MMMM yyyy HH:mm:ss格式(比如显示印尼语月份名),可以在解析完成后用ToString方法格式化:
// 先正确解析日期 DateTime myDate = DateTime.ParseExact(expiredDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); // 格式化为印尼语日期字符串 string indonesianFormattedDate = myDate.ToString("dd MMMM yyyy HH:mm:ss", CultureInfo.CreateSpecificCulture("id-id")); // 输出结果:"24 Mei 2026 18:54:55"
关键格式符说明
yyyy:4位数字年份(如2026)MM:2位数字月份(如05)dd:2位数字日期(如24)HH:24小时制的小时数(如18)mm:分钟数(如54)ss:秒数(如55)MMMM:本地化的完整月份名称(如印尼语的Mei,英语的May)
内容的提问来源于stack exchange,提问作者cielo
相关产品推荐
相关产品推荐

