You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Calendar API添加重复事件时夏令时(DST)时段时间错乱

问题原因及解决办法

你的问题核心是**dateTime的偏移值与指定时区不匹配**,导致Google Calendar无法正确处理夏令时调整。

具体问题分析

Google Calendar确实会自动处理夏令时的时间调整,但前提是你提供的时间参数要和指定时区一致。你设置了timeZone: "Australia/Sydney",但dateTime用了-05:00的偏移——这和悉尼时区的实际偏移(夏令时+11:00、非夏令时+10:00)完全不符。这种矛盾的参数会让API解析时出现混乱,把原本应该是悉尼当地下午1:30的时间,错误地按UTC-05时区的时间转换,最终导致夏令时期间的实例时间显示异常。

解决办法

修正start和end的dateTime值,确保偏移与Australia/Sydney时区匹配,或者直接使用UTC时间并指定时区:

方案1:使用悉尼当地时间带正确偏移

"start": {
  "dateTime": "2024-01-30T13:30:00+11:00",
  "timeZone": "Australia/Sydney"
},
"end": {
  "dateTime": "2024-01-30T14:00:00+11:00",
  "timeZone": "Australia/Sydney"
},
"recurrence": [
  "RRULE:FREQ=MONTHLY;UNTIL=20241218T125900Z;INTERVAL=1;BYDAY=-1WE"
]

方案2:使用UTC时间(更稳妥,无需手动计算时区偏移)

"start": {
  "dateTime": "2024-01-30T02:30:00Z",
  "timeZone": "Australia/Sydney"
},
"end": {
  "dateTime": "2024-01-30T03:00:00Z",
  "timeZone": "Australia/Sydney"
},
"recurrence": [
  "RRULE:FREQ=MONTHLY;UNTIL=20241218T125900Z;INTERVAL=1;BYDAY=-1WE"
]

调整后,Google Calendar会自动根据Australia/Sydney时区的夏令时规则,正确生成所有重复实例的时间。

内容的提问来源于stack exchange,提问作者Jeff McKay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:33:33