首页 > 解决方案 > Ical.Net:事件的 AsUtc 标志未正确更新

问题描述

我在 Ical.Net 版本 = 4.0.1.0 及更低版本中面临这个问题,当我们在 DTSTART/DTEND 中获得“GMT-0500”时,它给出的 utc 时间与 AsUtc 中的本地时间相同。但是如果我在 ics 中手动将“GMT-0500”替换为“加拿大/东部”,它会在 AsUtc 中给出正确的 utc 时间。

以下工作不正常-:

DTSTART;TZID=GMT-0500:20181213T190000
DTEND;TZID=GMT-0500:20181213T220000

以下工作正常 - :

DTSTART;TZID=Canada/Eastern:20181213T190000
DTEND;TZID=Canada/Eastern:20181213T220000

标签: timezoneical-dotnet

解决方案


  • GMT-0500不是有效的 IANA 时区。这是 IANA 时区列表。你想要Etc/GMT+5
  • Canada/Eastern已弃用。我建议你America/Toronto改用。

一般来说,我建议您熟悉实际的时区名称,而不是猜测它们可能是什么,并希望得到最好的结果。

正如我在发行说明中所指出的AsUtc,缓存值也存在一些错误。我建议升级到 4.latest。它应该是向后兼容的。


推荐阅读