有关如何从C#中的XML文档中正确提取DateTime的一些信息?

有关如何从C#中的XML文档中正确提取DateTime的一些信息?,c#,.net,xml,datetime,xpath,C#,.net,Xml,Datetime,Xpath,我有以下情况 在C#程序中,我使用XML文件的内容初始化一些对象字段 在XML文件中,我有以下两个日期时间字段: <x:Published>May 21 2014</x:Published> <x:LastUpdated>2014-05-21T17:00:38</x:LastUpdated> 是这样吗?我是否可以对第一个XML数据字段使用XmlConver.ToDateTime()方法?为什么使用ParseExact()而不是XmlConvert

我有以下情况

在C#程序中,我使用XML文件的内容初始化一些对象字段

在XML文件中,我有以下两个日期时间字段:

<x:Published>May 21 2014</x:Published>
<x:LastUpdated>2014-05-21T17:00:38</x:LastUpdated>
是这样吗?我是否可以对第一个XML数据字段使用XmlConver.ToDateTime()方法?为什么使用ParseExact()而不是XmlConvert.ToDateTime()


Tnx

是的,您应该能够通过指定格式字符串来使用
XmlConvert.ToDateTime
,就像您使用
DateTime.ParseExact
一样:

XmlConvert.ToDateTime("May 21 2014", "MMM dd yyyy")
此方法最终将调用
DateTime.ParseExact
,因此选择哪个选项并不重要,只要是一致的

以下是
XmlConvert.ToDateTime(string,string[])的实现,仅供参考。

定义存储在XML文档中的日期和时间的预期表示形式。仅接受单个字符串的
XmlConvert.ToDateTime
重载应使用此格式。通过使用该方法,而不是使用
DateTime.Parse
的变体,您的意思是希望使用可互操作的格式

XmlConvert.ToDateTime
确实有重载,需要尝试一个或多个格式参数,但这些重载仍然是完整字符串的子集


文件中发布的日期不符合XML模式数据类型,因此必须使用能够处理该格式的方法对其进行分析
DateTime.Parse
can,
XmlConvert.ToDateTime
将以无效格式拒绝该格式。

ok,但XmlConvert.ToDateTime()和DateTime.ParseExact()的使用有什么区别?没有
XmlConvert.ToDateTime()
只需使用特定的formatprovider调用
DateTime.ParseExact()
,请参阅我的编辑。带有单个参数的.XmlConvert.ToDateTime()显然已过时。我吹毛求疵的干巴巴的狂热一看到n_alertdocument就反抗了。重复选择SingleNode(“./x:LastUpdated”,nsmgr),而不是使用一次,也许创建了一个小方法,仍然允许主代码保持一行。
XmlConvert.ToDateTime("May 21 2014", "MMM dd yyyy")
public static DateTime ToDateTime(string s, string[] formats)
{
    return DateTime.ParseExact(s, formats, (IFormatProvider) DateTimeFormatInfo.InvariantInfo, DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite);
}