我正在尝试使用feedparser将学校的运动/活动日历(以iCal或RSS格式提供)读入Django事件模型中。
一切都正常,但日期不对。Feedparser使用“9元组”填充item.updated_parsed,但我无法弄清楚如何将其转换为DateTimeField可以接受的内容。(我以前用过它们,但它们只被datetime.datetime.now()填充过)。
有什么想法吗?
我正在尝试使用feedparser将学校的运动/活动日历(以iCal或RSS格式提供)读入Django事件模型中。
一切都正常,但日期不对。Feedparser使用“9元组”填充item.updated_parsed,但我无法弄清楚如何将其转换为DateTimeField可以接受的内容。(我以前用过它们,但它们只被datetime.datetime.now()填充过)。
有什么想法吗?
将 time.struct_time
对象转换成 datetime.datetime
对象:
from time import mktime
from datetime import datetime
dt = datetime.fromtimestamp(mktime(item['updated_parsed']))
好的,Django DateTime字段接受Python datetime.datetime对象,因此您需要从Feedparser提供的内容转换为datetime对象。 这很容易:
from datetime import datetime
time_object = datetime(nine_tuple[:8])
datetime
不接受元组作为输入。你可以使用datetime(*item.updated_parsed[:7])
,但是这会再次丢失时区信息。 - mlissner