如何使用python处理ical标准记录中的时区差异?
我正在尝试处理来自 python gdata api 的 ical 重复记录。
<前><代码>DTEND:20110421T190000 DTEND 的参数: TZID [u'欧洲/伦敦'] 开始时间:20110421T180000 DTSTART 的参数: TZID [u'欧洲/伦敦'] 规则:FREQ=每周;BYDAY=TH V时区 TZID:欧洲/伦敦 日光 DT启动:19700329T010000 TZOFFSETFROM: +0000 TZNAME:BST TZOFFSETTO:+0100 规则:FREQ=每年;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
我可以从 事件 时间范围“确实”应该是 17:00 - 18:00(英国夏令时间),但 DTSTART/DTEND 似乎列出了 GMT,然后需要“标准”来纠正?
我正在尝试在 python 中设置一个自动过程来“读取”这些重复并将它们复制为实际日期和时间。
确保准确性的最佳方法是什么?我知道 dateutil 可以解析时区信息,但我该选择哪一个,最重要的是我该如何解析应用此更改以便我获得具有“真实”时间的Python日期时间对象?
谢谢 :)
I'm trying to process a ical recurrence record from the python gdata api.
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
I can see from the event that the time frame should 'really' be 17:00 - 18:00 (British Summer Time) but DTSTART/DTEND seems to list GMT and then need "standard" to rectify?
I'm trying to set up an automatic process in python to 'read' these recurrence and replicate them as actual date and times.
What's the best way to do this to ensure accuracy? I know that dateutil can parse the timezone information, but which one do i pick, and most importantly how do I apply this change so that i get a python datetime object with the "real" time?
Thanks :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我以前使用过 Pytz,取得了巨大成功: http://pytz.sourceforge.net/
I've used Pytz before, with great success: http://pytz.sourceforge.net/