显然,读者不喜欢从响应XML传入的这种格式.
想知道我是否可以重新格式化.尝试DateTime
使用以下代码转换为使用以下代码XmlReader
:
reader.ReadContentAsDateTime();
David Norman.. 99
根据XML 模式规范,日期时间值应该是ISO8601格式,例如,类似于
2009-03-13T22:16:00
在ruby中使用`iso8601`方法,例如`Time.now.iso8601`. (2认同)
出于好奇,ISO8601格式看起来应该像`2009-03-18T22:16:00-05:00`,但David的答案(省略时区)也适合我(而ISO8601格式则不然).这是因为XmlConverter中的本地序列化(因此不需要时区)? (2认同)
Marc Gravell.. 51
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
,您可以使用垫片属性进行转换 - 让我知道这是您正在做的...
根据XML 模式规范,日期时间值应该是ISO8601格式,例如,类似于
2009-03-13T22:16:00
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
,您可以使用垫片属性进行转换 - 让我知道这是您正在做的...