You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# DateTime转换异常求助:日期时间字符串解析失败

问题分析与修正

你的问题出在自定义格式字符串的字母大小写错误,C#的DateTime格式符区分大小写,具体错误点如下:

1. 日期格式错误:mm 是分钟而非月份

你使用的yyyymmdd里,小写mm代表的是分钟,不是月份。正确的月份格式符是大写MM。这导致解析时,字符串里的05被识别为分钟,月份则取DateTime默认值1月,所以dateTest的月份始终为1月。

2. 时间格式错误:hh 是12小时制而非24小时制

小写hh对应12小时制的小时(范围1-12),而你的输入17是24小时制时间,超出了hh的解析范围,因此多数情况下解析失败,timeTest被设为默认的00:00;只有输入时间在1-12点时,解析才会正常。正确的24小时制小时格式符是大写HH。

修正后的代码

// 日期格式修正为yyyyMMdd(MM表示月份)
string datePattern = "yyyyMMdd";
DateTime.TryParseExact(d, datePattern, null, DateTimeStyles.AssumeLocal, out dateTest);

// 时间格式修正为HHmmss(HH表示24小时制小时)
string timePattern = "HHmmss";
DateTime.TryParseExact(t, timePattern, null, DateTimeStyles.AssumeLocal, out timeTest);

如果需要将日期和时间合并为一个DateTime对象,也可以直接用组合格式一次性解析,效率更高:

string combinedPattern = "yyyyMMdd,HHmmss";
DateTime.TryParseExact(combinedString, combinedPattern, null, DateTimeStyles.AssumeLocal, out fullDateTime);

内容的提问来源于stack exchange,提问作者user1006221

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 12:58:14