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

C#中将EEE MMM d HH:mm:ss z yyyy格式字符串转DateTime并计算日差

C# 转换特殊格式日期并计算间隔实现方案

核心实现代码

首先需要引用命名空间:

using System.Globalization;

完整业务逻辑代码:

// 指定英文文化环境,适配英文星期、月份缩写
var enCulture = new CultureInfo("en-US");
// 匹配输入字符串的格式规则
var dateFormat = "ddd MMM d HH:mm:ss z yyyy";

string dt1Str = "Wed Jul 14 07:59:30 BST 2021";
string dt2Str = "Fri Jul 16 08:59:30 BST 2021";

// 推荐用DateTimeOffset处理带时区的日期,规避时区转换报错
DateTimeOffset dt1 = DateTimeOffset.ParseExact(dt1Str, dateFormat, enCulture);
DateTimeOffset dt2 = DateTimeOffset.ParseExact(dt2Str, dateFormat, enCulture);

// 计算两个日期的时间间隔
TimeSpan interval = dt2 - dt1;
// 总间隔天数(带小数,比如2天1小时返回2.041666...)
double totalIntervalDays = interval.TotalDays;
// 如果需要取整数自然日间隔,可按日期截断计算
int naturalDayDiff = (dt2.Date - dt1.Date).Days;

// 如需要转为DateTime类型,按需取UTC时间或本地时间
DateTime dt1Utc = dt1.UtcDateTime;
DateTime dt1Local = dt1.LocalDateTime;

异常场景处理

部分特殊时区缩写(如示例中的BST英国夏令时)在部分系统环境下可能识别失败,可先对输入字符串做预处理:将时区缩写替换为对应的UTC偏移,例如将BST替换为+01:00,同时将格式字符串调整为"ddd MMM d HH:mm:ss zzz yyyy"即可兼容所有环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:48:02