字符串'3/18/09 10:16 PM'不是有效的AllXsd值

时间:2009-03-19 11:41:14

标签: c# xml parsing

显然,读者不喜欢从响应XML传入的这种格式。

想知道我是否可以重新格式化。尝试使用以下代码与DateTime转换为XmlReader

reader.ReadContentAsDateTime();

2 个答案:

答案 0 :(得分:92)

根据XML schema规范,日期时间值应采用ISO8601格式,例如

2009-03-13T22:16:00

答案 1 :(得分:49)

Xml阅读器通常以非常特定的格式预期日期/时间;您可以使用XmlConvert

自行使用此功能
string s = XmlConvert.ToString(DateTime.Now);
DateTime when = XmlConvert.ToDateTime(s);

如果您正在使用其他内容,则必须将其作为字符串读取并使用DateTime.TryParseExact(或类似)来指定实际的格式字符串:

string s = reader.ReadContentAsString();
DateTime when = DateTime.ParseExact(s, "M/d/yy hh:mm tt",
     CultureInfo.InvariantCulture);

如果您使用的是XmlSerializer,则可以使用垫片属性进行转换 - 请告诉我这是您正在做的事情......