【问题标题】:Populating a Django DateTimeField with feedparser使用 feedparser 填充 Django DateTimeField
【发布时间】:2011-06-09 01:57:58
【问题描述】:

我正在尝试使用 feedparser 将学校的体育/活动日历(以 iCal 或 RSS 格式提供)读入 Django Events 模型。

一切正常,除了日期。 Feedparser 用“9 元组”填充 item.updated_pa​​rsed,但我不知道如何将它变成 Django 将在 DateTimeField 中接受的东西。 (我以前使用过这些,但它们只被 datetime.datetime.now() 填充)。

有什么想法吗?

【问题讨论】:

    标签: python django rss date feedparser


    【解决方案1】:

    time.struct_time对象转换为datetime.datetime对象:

    from time import mktime
    from datetime import datetime
    dt = datetime.fromtimestamp(mktime(item['updated_parsed']))
    

    【讨论】:

    • 这很好。如果您想丢弃时区信息。
    【解决方案2】:

    Django DateTime field 接受 python datetime.datetime 对象,因此您必须从 Feedparser 为您提供的内容和日期时间对象进行转换。这很容易:

    from datetime import datetime
    time_object = datetime(nine_tuple[:8])
    

    编辑: How do you convert a Python time.struct_time object into a datetime object?

    【讨论】:

    • 这种直截了当是行不通的。 datetime 不接受元组作为输入。你可以datetime(*item.updated_parsed[:7]),但是,natch,这会再次删除时区信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    相关资源
    最近更新 更多