0
我有带有日期时间字段的Customer XML,但有时只有日期。我只需要日期时间字段和日期字段的结果。 (这个xml我的帽子工作多得多,并且嵌套)使用XDocument解析xml将日期转换为datetime
我认为有一种更好的方式,那么我的蛮力尝试。
xml = "<root><date>2003-07-15T10:00:00</date><enddate>2016-02-02</enddate><startdate>2000-02-10</startdate></root>";
string result = string.Empty;
if (!string.IsNullOrWhiteSpace(xml))
{
XDocument doc = XDocument.Parse(xml);
string xml1 = doc.ToString();
Regex rgx = new Regex(@">(\d{4}-\d\d-\d\d)</");
result = rgx.Replace(xml1, ">$1T00:00:00</");
}
XML是如何生成的?你有任何控制权?你提到XDocument和Linq-to-xml - 你是如何生成它的? – simonalexander2005
同意。如果可能的话,修复XML是解决此问题的正确方法,而不是编写代码来解决无效文档。试图修复不一致的数据通常会导致意大利面代码和令人头痛的问题(例如,当其他日期格式在XML中结束时,因为拥有的开发人员不遵循约定)。 – DVK
没有必要修复,不应该修复。您需要时区来防止错误。没有时区,你会得到错误的日期。只需阅读日期并解析为DateTime对象,该对象将日期转换为正确的实际日期。 – jdweng