首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否有任何RFC标准定义在夏时制发生时,哪个时区会赢得经常性事件?

是否有任何RFC标准定义在夏时制发生时,哪个时区会赢得经常性事件?
EN

Stack Overflow用户
提问于 2022-11-20 16:06:34
回答 1查看 36关注 0票数 0

示例

  • 一位在维也纳工作的奥地利人在2022年10月28日和一位在新德里工作的印度人进行了视频通话(请注意,在奥地利,2022年10月29日仍然是夏令时,但截止时间是2022年10月30日)。时间是:
    • 在世界协调时间12:00 (协调世界时,UTC +0)
    • 奥地利: 14:00 (中欧夏季时间,世界协调时+2)
    • 在印度17:30 (印度标准时间,UTC +5:30)

  • 他们同意在接下来的两天(10月29日,10月30日)同时举行会议。
  • 但由于2022年10月30日的DST,同样的时间是:。
    • 在世界协调时间12:00 (协调世界时,UTC +0)
    • 在奥地利13:00 (中欧时间,UTC +1) <-注意时区和UTC偏移量发生了变化
    • 在印度17:30 (印度标准时间,UTC +5:30)

问题

如果我希望奥地利时区“获胜”,iCalender文件会是什么样子?根据RFC的标准,这可能吗?如果奥地利时区“获胜”,时间就会改变,视频通话将在10月30日晚1小时:

  • 在世界协调时间13:00 (协调世界时,UTC +0)
  • 奥地利:下午2:00(中欧时间,协调世界时+1)
  • 在印度18:30 (印度标准时间,UTC +5:30)

仅仅像这样在DTSTART中包含时区就足够了吗?如果是,是哪个RFC定义的?

代码语言:javascript
代码运行次数:0
运行
复制
BEGIN:VCALENDAR
  BEGIN:VEVENT
    DTSTART;TZID=Europe/Vienna:20221029T140000
    RRULE:FREQ=DAILY;COUNT=2
  END:VEVENT
END:VCALENDAR

如果有一个RFC定义了iCalendar文件的外观,那么是否也有一个RFC定义每个实现都必须计算这个iCalendar文件的单个日期: 13:00 UTC,14:00在奥地利,18:30在DST变化发生时?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-24 17:44:50

Time Zone Identifiersection-3.2.19 of RFC5545中定义。

您给出的示例适用于DTSTART中的TZID。见同一节3.2.19中的评论

此参数TZID必须在"DTSTART“、"DTEND”、“到期”、"EXDATE“和"RDATE”属性上指定,如果指定了日期-时间或时间值类型,并且该值既不是UTC也不是“浮动”时间.以下是此属性参数的示例:DTSTART;TZID=America/纽约:19980119T020000 DTEND;TZID=America/纽约:19980119T030000

应该注意的是,标准要求在VTIMEZONE组件中的同一个文件中定义TZID。

必须为iCalendar对象中指定的每个唯一"TZID“参数值指定一个单独的"VTIMEZONE”日历组件。

因此,对TZID的隐式引用通常有效,但不符合标准。

标准没有指定客户端必须计算the single dates for this iCalendar file at 13:00 UTC, 14:00 in Austria and 18:30 in India as soon as the DST change occurs?,而是客户端必须计算事件发生时的函数,在哪个时区中定义时区,然后将其与本地时间进行比较,看看它们是否匹配。

查看它的更简单的方法是,客户端计算UTC时间内所有事件的日期时间,同时考虑到它所定义的TZID,并检查当前时间与UTC之间是否需要触发警报。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74509715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档