如何在Python中解析Facebook动态时间?

2 投票
2 回答
1376 浏览
提问于 2025-04-15 17:25
  1. 我正在使用Python库'feedparser'来读取Facebook的更新信息。
  2. 我在Django模板中循环遍历这些信息,并显示结果。
  3. 更新的时间字段是以一个我不太熟悉的格式返回的长字符串。

    比如:Tue, 01 Dec 2009 23:55:52 +0000

我该怎么做...

A) 在模板的循环中使用Django的过滤器来处理这个日期时间。

...或者...

B) 在视图中解析这个日期,并格式化更新的日期,基本上是在遍历这些信息之前先处理好日期。

注意:我试过这两种方法。Django的日期过滤器不识别这个格式,我尝试用iso8601库解析这个字符串也不行。

有没有人有这方面的经验?谢谢你的帮助!

更新:

在Django模板中使用feedparser返回的updated_parsed值效果不太好。不过,已经有一个Django的代码片段专门处理这个问题!**

Django代码片段: http://www.djangosnippets.org/snippets/1595/

2 个回答

2

这个方法有效,但最终我的解决方案并不是这样的。

这个方法是遍历我从Facebook获取的动态条目集合。然后我解析日期时间,并把更新的属性设置为这个新的日期时间。(另外,我会忽略掉+0000)

for entry in feed.entries:
        entry.updated = datetime.strptime(entry.updated, "%a, %d %b %Y %H:%M:%S +0000")

这些条目集合会返回给模板,这样我就可以使用Django的“日期”过滤器来格式化日期了。

4

entries[i].updated_parsed 替代 entries[i].updated,这样 feedparser 就会给你返回一个解析好的9元组。(文档链接)

然后你可以创建一个 datetime 对象,把它传给Django,或者自己把它格式化成字符串。

这里还有一个类似的问题 可以看看

撰写回答