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

如何将XML中转义的日期字符串转换为C# DateTime?

解决方法

你的问题核心是日期字符串里的冒号被双重HTML转义了,:实际是:的两次转义结果(先把:转成:,再把&转成&),所以第一步必须先把字符串解码还原成正常的日期格式,再进行DateTime解析。

步骤1:解码HTML实体

使用WebUtility.HtmlDecode(适用于.NET Core/.NET 5+)或HttpUtility.HtmlDecode(适用于.NET Framework)把转义后的字符串还原:

using System.Net;

string dateString = "1/10/2023 5:00:00 PM";
// 解码后得到 "1/10/2023 5:00:00 PM"
string decodedDateString = WebUtility.HtmlDecode(dateString);

步骤2:解析为DateTime

解码后的字符串是标准的美式日期格式,直接用DateTime.Parse配合en-US文化即可,或者用ParseExact指定格式更稳妥:

using System.Globalization;

// 方法1:使用Parse
CultureInfo usCulture = new CultureInfo("en-US");
DateTime result = DateTime.Parse(decodedDateString, usCulture);

// 方法2:使用ParseExact(更精确,避免格式歧义)
string format = "M/d/yyyy h:mm:ss tt";
DateTime resultExact = DateTime.ParseExact(decodedDateString, format, usCulture);

为什么之前的代码失败?

你之前的所有尝试都直接使用了未解码的字符串,解析器无法识别:作为时间分隔符,自然解析失败。必须先完成HTML实体解码,才能让日期字符串符合解析器的格式要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 16:37:44