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

C#中DateTime.ParseExact解析特定BST日期失败问题咨询

问题原因分析及解决方法

可能的原因

  • 文化信息不匹配:你调用ParseExact时第三个参数传了null,会使用当前线程的CultureInfo。如果当前文化不是英语系(比如中文、德语),或者英语系文化的日期格式被修改,就可能无法识别"Thu""Sep"这类英文缩写。之前"Fri Oct"能解析可能是测试环境的文化恰好兼容,或者存在临时配置差异。
  • 字符串含不可见特殊字符:实际传入的"Thu Sep 28..."字符串里可能有全角空格、零宽空格这类不可见字符,导致格式严格匹配失败。
  • 自定义日期格式覆盖:系统或你的应用程序中修改了DateTimeFormatInfo的星期/月份缩写规则,使得"Sep"或"Thu"不被识别为合法缩写。

解决方法

最可靠的方式是显式指定不依赖系统区域的固定文化(比如InvariantCulture),确保英文缩写能被正确解析:

try
{
    d = DateTime.ParseExact(date, "ddd MMM dd HH':'mm':'ss 'BST' yyyy", System.Globalization.CultureInfo.InvariantCulture);
}
catch (FormatException)
{
}

如果是字符串含特殊字符的问题,可以先清理字符串:

// 替换所有非标准空格为普通空格
date = System.Text.RegularExpressions.Regex.Replace(date, @"\s+", " ").Trim();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 00:22:16