当DST时,Datetime objs将不正确

2024-10-06 15:21:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将ical数据导入我的一个Django应用程序。但它没有考虑DST(我想),所以它显示的时间错了一个小时。如果认为这在冬天有效。以下是导入数据的示例:

In [1]: from events.models import Events

In [2]: from icalendar import Calendar

In [3]: cal = Calendar.from_ical(open('/tmp/test.ics', 'rb').read())
20130612T183000
20130612T193000

In [4]: from_ical_dt = cal.walk()[1].get('dtstart').dt  # Get first entry

In [5]: from_ical_dt
Out[5]: datetime.datetime(2013, 6, 12, 18, 30, tzinfo=<DstTzInfo 'Europe/Stockholm' CET+1:00:00 STD>)

In [6]: new_event = Events(dtstart=from_ical_dt, title=u'testevent')

In [7]: new_event.save()

In [8]: new_event.dtstart
Out[8]: datetime.datetime(2013, 6, 12, 18, 30, tzinfo=<DstTzInfo 'Europe/Stockholm' CET+1:00:00 STD>)

这个活动预定在18:30举行。到目前为止还不错,我想!ical模块似乎正确地导入了它。夏天瑞典是+1 UTC,冬天是+2 UTC(现在是夏天)。在

我也认为Django正确地保存了它(?)协调世界时17:30。在

^{pr2}$

但是,在我的应用程序的管理视图中,这显示为19:30:

View of admin interface

这是我的一些台词设置.py公司名称:

TIME_ZONE = 'Europe/Stockholm'
USE_TZ = True

问题出在哪里?为什么Django没有显示为18.30?我的实际应用程序模板和管理界面都关闭了一个小时。在


Tags: 数据djangoinfromimportevent应用程序new