.ics 日历格式设置困难

问题描述 投票:0回答:1

我正在 C# 中创建一个 .ics 日历项目,并通过电子邮件将其发送到 Outlook 日历中。基本上,它可以工作,但我得到的时间通常比我指定的时间早 4 小时。我想我的时区元素设置正确。我位于东部时区,这严格来说是一个内部系统,因此所有时间将始终为美国东部时区。 有人看到我做错了什么吗?

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VTIMEZONE
TZID:Eastern Standard Time
BEGIN:STANDARD
DTSTART:16011104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DESCRIPTION:Training class to inform about and prevent workplace harassment
DTSTAMP:20240202T153000Z
DTSTART;TZID="Eastern Standard Time":20240213T140000Z
DTEND;TZID="Eastern Standard Time":20240213T153000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Workplace Harassment Prevention Training Class 
LOCATION:Annex 149
TRANSP:OPAQUE
UID:69EEED22-E111-436C-9210-6B95000A55D5
END:VEVENT
END:VCALENDAR
outlook calendar icalendar
1个回答
0
投票

日期时间字符串末尾的

Z
表示 UTC。时区将被忽略。还建议使用 olson 时区 ID 以获得更好的支持,例如东部时间为
America/Toronto

© www.soinside.com 2019 - 2024. All rights reserved.