如何处理使用python的ical标准记录中的时区差异?

问题描述:

我正在尝试从python gdata api处理一个ical重复记录。如何处理使用python的ical标准记录中的时区差异?

DTEND: 20110421T190000 
params for DTEND: 
    TZID [u'Europe/London'] 
DTSTART: 20110421T180000 
params for DTSTART: 
    TZID [u'Europe/London'] 
RRULE: FREQ=WEEKLY;BYDAY=TH 
VTIMEZONE 
    TZID: Europe/London 
    DAYLIGHT 
     DTSTART: 19700329T010000 
     TZOFFSETFROM: +0000 
     TZNAME: BST 
     TZOFFSETTO: +0100 
     RRULE: FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU 
STANDARD 
     DTSTART: 19701025T020000 
     TZOFFSETFROM: +0100 
     TZNAME: GMT 
     TZOFFSETTO: +0000 
     RRULE: FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU 

    X-LIC-LOCATION: Europe/London 

我可以从event看到的时间框架应该 '真的' 是17:00 - 18:00(英国夏令时),但DTSTART/DTEND似乎列出GMT和那么需要“标准”来纠正?

我试图在python中设置一个自动过程来'读'这些复现并将它们复制为实际的日期和时间。

确保准确性的最佳方法是什么?我知道dateutil可以解析时区信息,但是我选择哪一个,最重要的是我该如何应用这个改变,以便我得到一个python datetime对象的“真实”时间?

谢谢:)

我以前用过Pytz,取得了巨大成功:http://pytz.sourceforge.net/