该字符串未被识别为有效的DateTime。从索引26开始有一个未知单词

时间:2013-03-24 21:16:19

标签: c# asp.net linq-to-xml

我正在研究RSS的XML feed,我想按照发布的日期和时间对Feed进行排序。由于正在采用不同的RSS源,因此它们具有不同的数据和时间格式。

例如

Sat, 23 Mar 2013 23:19:54 GMT
Sat, 23 Mar 2013 23:19:54 EDT
Sat, 23 Mar 2013 23:19:54 -0400

我想在当地时间转换它们然后对它们进行排序。

  var rssFeed = from el in doc.Elements("rss").Elements("channel").Elements("item")
  select new
  {
       Title = el.Element("title").Value,
       Link = el.Element("link").Value,
       Description = el.Element("description").Value,
       PubDate = DateTime.Parse(el.Element("pubDate").Value, null,
                        DateTimeStyles.None)            
  };

请告诉我如何继续。

1 个答案:

答案 0 :(得分:2)

可能是您的DateTime字符串格式不正确无法解析。

改为使用:

DateTime.ParseExact(el.Element("pubDate").Value,
                                  "ddd, dd MM yyyy HH:mm:ss",null);

并传递适当的格式以获取日期。

你最终必须摆脱那个TimeZone部分。

详细了解此herehere