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

C#解析dd-MM-yy/HH:mm:ss格式字符串为DateTime时抛错如何解决

报错根因

.NET DateTime格式规范中,代表两位公历年份的格式符为小写yy,你代码中使用的大写YY是ISO 8601周历年份占位符,和常规公历年计算逻辑不一致,无法匹配输入字符串中的21年份字段,所以触发格式异常。

修复后的代码
using System.Globalization;

DateTime dateTime;
string strTime = "13-08-21/11:14:11";
// 仅将原格式中的YY修改为yy即可
string strFormat = @"dd-MM-yy'/'HH:mm:ss";

dateTime = DateTime.ParseExact(strTime, strFormat, CultureInfo.InvariantCulture);

运行后得到的dateTime值即为预期的2021年8月13日 11:14:11。

补充说明
  • 固定区域性(CultureInfo.InvariantCulture)默认将两位年份映射到1930~2029区间,如果你需要调整两位年份对应的世纪范围,可以修改对应区域性实例的Calendar.TwoDigitYearMax属性。
  • 格式字符串中用单引号包裹/的写法是合规的,可以确保分隔符严格匹配输入字符串,不会被解析为区域性相关的日期分隔符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:12:04