【发布时间】:2010-10-14 07:06:41
【问题描述】:
显然读者不喜欢这种从响应 XML 中传入的格式。
想知道我是否可以重新格式化它。尝试使用以下代码与我的XmlReader 转换为DateTime:
reader.ReadContentAsDateTime();
【问题讨论】:
显然读者不喜欢这种从响应 XML 中传入的格式。
想知道我是否可以重新格式化它。尝试使用以下代码与我的XmlReader 转换为DateTime:
reader.ReadContentAsDateTime();
【问题讨论】:
根据 XML schema 规范,日期时间值应采用 ISO8601 格式,例如,
2009-03-13T22:16:00
【讨论】:
iso8601 方法,例如Time.now.iso8601。
2009-03-18T22:16:00-05:00,但大卫的回答(省略时区)也适用于我(而 ISO8601 格式不适用)。这是因为 XmlConverter 中的本地序列化(因此不需要时区)吗?
nesbot/carbon php lib 中有toIso8601String 方法。
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,您可以使用 shim 属性进行转换 - 如果您正在这样做,请告诉我...
【讨论】:
XmlSerializer 反序列化某些 rss 提要时,PubDate 元素会导致错误。我该如何解决?