有关如何从C#中的XML文档中正确提取DateTime的一些信息?
我有以下情况 在C#程序中,我使用XML文件的内容初始化一些对象字段 在XML文件中,我有以下两个日期时间字段:有关如何从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
<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);
}