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

C#解析ICalendar日期报错:DateTime格式无效(Godot 4.2环境)

问题排查与解决

核心原因

你遇到的System.FormatException有两个关键诱因:

  1. 小时格式符不匹配:格式串里的hh是12小时制的小时标识,而目标时间字符串中的15属于24小时制的时间值,12小时制的小时范围是1-12,15超出这个范围导致解析失败。
  2. 大小写不严格匹配:目标字符串中的时间分隔符是大写T,但你的格式串里用了小写t,ParseExact默认是严格匹配模式,大小写不一致也会触发解析错误。

解决方法

直接修正格式串即可,不需要修改原时间字符串:

  1. 将格式串中的hh替换为HH(24小时制小时标识);
  2. 将格式串中的t替换为大写T,和原字符串的分隔符保持一致。

修正后的代码示例:

string icalTime = "20231120T153000";
DateTime parsedTime = DateTime.ParseExact(icalTime, "yyyyMMddTHHmmss", System.Globalization.CultureInfo.InvariantCulture);

使用CultureInfo.InvariantCulture替代null,可以避免系统区域设置对解析逻辑的干扰,稳定性更强。

如果之前尝试移除T的操作,对应的格式串应该改为"yyyyMMddHHmmss",但直接修正格式串匹配原字符串的方式更符合ICalendar的标准格式规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:28:18