计算给定时间与.ics文件中提供的 VTIMEZONE 块的 UTC 偏移量



我的应用程序解析提供的.ics文件,并以 UTC 格式获取日历事件的开始和结束时间。请参阅示例.ics文件下面。

开始:万历开始:VTIMEZONE齐德:开始:标准启动:16010101T020000偏移量:-0400佐夫塞托:-0500频率:频率=每年;间隔=1;BYDAY=1SU;按月=11结束:标准开始:日光启动:16010101T020000TZOFFSETFROM:-0500佐夫塞托:-0400频率:频率=每年;间隔=1;BYDAY=2SU;按月=3结束:日光结束:纬线时区开始:万事ORGANIZER;CN=blah:MAILTO:someone@blah.com描述;语言=en-US:频率:频率=每年;计数=30;间隔=1;按月日=9;按月=4总结;语言=en-US:这是摘要DTSTART;TZID=:20160409T000000DTEND;TZID=:20160410T000000编号:f663243d-17f2-424a-a52c重复周期 ID;TZID=:20160409T000000优先级:5邮票:20150701T123848Z传输:不透明状态:已确认序列:0位置;语言=en-US:结束:万事结束:万历

我遇到过DTSTART/DTEND没有提到TZID的情况(如上面的.ics文件),或者 TZID 是一些随机字符串,您无法从中找出时区。

我认为在这种情况下获取时区信息的唯一方法是解析 VTIMEZONE 块以确定时区偏移量,然后将其应用于开始和结束时间以获取 UTC 中的值。

有人可以帮助我使用算法(或指向现有库)来解析 VTIMEZONE 块并在给定时间获取 UTC 偏移量。

编辑:我正在研究蟒蛇。所以一个python库会很棒。如果您也用其他语言建议也没关系,我所需要的只是算法。我可以自己将其转换为工作代码。

我不知道

你用的是什么语言,但双周刊是一个解析iCalendar文件的Java库。 它还可以从VTIMEZONE组件中解析时区信息。

相关内容

  • 没有找到相关文章

最新更新