我有这些我正在尝试处理的文件,它们带有微软团队的链接。邀请函的日期格式非常奇怪,我无法弄清楚。我以为是UTC,但我似乎仍然无法弄清楚。任何日历程序都可以很好地打开它,向我显示正确的日期。但我想处理文本。
这是一个例子:
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Central Standard Time
BEGIN:STANDARD
DTSTART:16010101T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0600
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T020000
TZOFFSETFROM:-0600
TZOFFSETTO:-0500
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3
END:DAYLIGHT
END:VTIMEZONE
本次特别转换为 2021 年 10 月 27 日下午 3:00 中部夏令时间。我可以用另一种方式处理事情,但我必须在这里满足我的好奇心。我尝试查看 ICS 的 RFC,但没有看到我要找的内容。
这些是时区组件的夏令时更改。 https://datatracker.ietf.org/doc/html/rfc5545#section-3.6.5
此用法中的“DTSTART”必须指定为具有本地时间值的日期。
有关本地时间值,请参阅表格#1 的 DATETIME https://datatracker.ietf.org/doc/html/rfc5545#page-33
今天我自己思考了一会儿,直到我意识到实际上有三个“DTSTART”字段。
您会在 ics 文件的更下方找到更熟悉的日期格式。
示例:
(靠近顶部,就像你的一样)
DT开始:16010101T020000
...
DT开始:16010101T020000
...
(靠近中间)
DTSTART;TZID=中部标准时间:20240417T150000