【问题标题】:Parsing a date string in C# [duplicate]在 C# 中解析日期字符串 [重复]
【发布时间】:2014-06-17 21:19:56
【问题描述】:

我正在尝试加载 RSS 提要 http://feeds.feedburner.com/foxnews/latest,但在 SyndicationFeed.Load() 函数中出现日期时间解析错误,因为它无法解析 Tue, 17 June 2014 02:38:06 EDT 任何建议?

我已经在使用这个自定义 xml 阅读器 (http://brian-federici.com/blog/2012/9/21/exceptions-with-rss20feedformatterdatefromstring) 来支持多种格式,但它仍然不支持这种格式。

谁能帮我看看如何在 C# 中将此 Tue, 17 June 2014 02:38:06 EDT 解析为 DateTime 对象

【问题讨论】:

  • 你试过 DateTime.Parse 吗?
  • @bubbinator 它不起作用。我认为它不喜欢约会两次。
  • @Elias 日期有两次?你的意思是它有日期和时间?
  • 为什么这个问题被标记为重复......答案在哪里?
  • 你明白了吗?

标签: c# timezone rss-reader syndication-feed


【解决方案1】:

使用ParseExact(注意24小时“HH”)

CultureInfo provider = CultureInfo.InvariantCulture;
var myDate = DateTime.ParseExact("Tue, 17 June 2014 02:38:06 EDT", 
                                 "ddd, dd MMMM yyyy HH:mm:ss EDT", 
                                 provider);

格式代码为here

根据@Trisped 的建议,这里是custom string formats

编辑:不知道为什么“R”不起作用,但自定义工作得很好。

Here's a Fiddle

【讨论】:

  • 我知道有办法做到这一点。为什么不添加自定义格式的链接?
  • 您的代码有错误...附加信息:字符串未被识别为有效的日期时间。
  • 问题在于,虽然RFC 822/1123 支持少数时区缩写,如ESTEDT - .Net 实现根本不支持它们。通过在此处的格式中包含 EDT,它只是将其视为文本,而不是针对该时区进行调整。请参阅我链接到 dup 问题的答案。
  • @CmdrTallen,谢谢,希望你的答案有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-26
  • 1970-01-01
  • 2013-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多