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

如何在转换字符串为DateTime时忽略偏移量

解决方法:忽略偏移量将字符串转为DateTime

我明白你的需求——就是不管字符串里的+01:00偏移信息,直接把前面的日期时间部分原封不动转成DateTime类型对吧?这里有两种简单的实现方式:

方法一:用DateTimeOffset解析(推荐)

这种方法不需要手动处理字符串,直接利用DateTimeOffset的特性来忽略偏移:

string input = "2017-02-13T12:11:03.303+01:00";
// 先解析成DateTimeOffset,完整保留所有信息
DateTimeOffset dateTimeOffset = DateTimeOffset.Parse(input);
// 取DateTime属性,该值会忽略偏移,直接保留字符串里的原始日期时间
DateTime result = dateTimeOffset.DateTime;
// 输出结果:2017-02-13 12:11:03.303

dateTimeOffset.DateTime返回的DateTime类型的Kind是Unspecified,完全符合你“忽略偏移量,保留原时间”的需求。

方法二:截断偏移部分后解析

如果你更倾向于先处理字符串再解析,可以先把偏移部分去掉,再用ParseExact指定格式:

string input = "2017-02-13T12:11:03.303+01:00";
// 截断到'+'符号之前的部分,去掉偏移信息
string trimmedInput = input.Split(new[] { '+' }, StringSplitOptions.None)[0];
// 指定精确格式解析
DateTime result = DateTime.ParseExact(trimmedInput, "yyyy-MM-ddTHH:mm:ss.fff", 
                                      System.Globalization.CultureInfo.InvariantCulture);

这种方法也能得到同样的结果,适合你明确知道字符串偏移部分的分隔符是+的场景。

需要注意的是,不要直接用DateTime.Parse或者不带样式的ParseExact,因为它们会自动根据偏移量把时间转换为本地时区时间,这就违背了你“忽略偏移”的初衷啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:07:29