谷歌日历API在夏时制下创建重复事件的错误?

2024-10-08 20:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我用python制作了一个小的appengine应用程序,它从一个文件中读取一个时间表,并将它放入你的Google日历中。时间表中的所有时间/日期都与DST无关,因此我需要以相同的方式加入事件。由于所有事件每周在多个DST周期内重复出现,这一点变得复杂起来。在

我正在使用日历API V3。在

我开始为这个创建我自己的日历。在

calander = {
    'summary': 'Calender Name,
    'location': 'Somewhere in Ireland',
    'timeZone': 'GMT',
}

然后我用许多不同的重复事件填充它

^{pr2}$

当然,在我的实际程序中,所有这些字符串都是动态生成的,但我在这里没有问题。在

问题是,在夏令夏令时期间发生的任何事件都会自动比我给出的时间晚1小时。我确信这是个错误,因为我将事件和日历的时区设置为GMT,但GMT不遵守夏令时。我不应该对我的时间做任何事。在

例如,时间表上说,从9月1日到12月31日,每个星期一上午10点到11点,如果把这一信息输入日历,10月28日(欧洲回溯日期)之前的所有活动都将比时间表晚一个小时。夏季以外的所有时间都很好。在

如果我告诉日历,一个事件在上午10点开始,我不希望它调整为夏时制。如何避免这种情况?在


Tags: 文件api应用程序google方式时间事件v3
2条回答

是否可以在开始日期时间以及结束日期时间也?如果这样做的话,时区字段似乎无法完全识别。试着把你的日期从“2012-09-26T10:00:00.000-00:00”改为“2012-09-26T10:00:00.000”[API->start.dateTime]

由于GMT没有DST,如果您将日历事件作为您指定的事件,从格林尼治标准时间10:00开始,在查看本地时间设置为“欧洲/都柏林”的日历视图时,这些事件将从11:00开始,因为夏季时间是+1。在

我不知道你说的“独立于”时区是什么意思,但是:

1)如果您想要一个从爱尔兰时间每周10:00开始直到12月的重复活动(如挂钟所示),请尝试以下方法:

{
  "start": {
    "dateTime": "2012-09-26T10:00:00.000",
    "timeZone": "Europe/Dublin"
  },
  "end": {
    "dateTime": "2012-09-26T11:00:00.000",
    "timeZone": "Europe/Dublin"
  },
  "summary": "CS101 Dublin",
  "description": "Intro to Comp Sci",
  "location": "Bla bla bla",
  "recurrence": [
    "RRULE:FREQ=WEEKLY;UNTIL=20121131"
  ]
}

2)如果您确实希望活动从格林尼治标准时间10:00开始,一直持续到12月(如在爱尔兰,时钟总是设置为冬季时间),请尝试以下方法:

^{pr2}$

这将创建一个事件,在时区设置为“Europe/Dublin”的日历用户界面中显示的时间是11:00到2012-10-31,从10:00开始。您可以尝试在“花”按钮->设置->您的时区的日历UI中切换不同的时区显示。在

但我想你应该在这里(1),因为这听起来像是一门CS课程,它以当地时间指定的时间开始。在

顺便说一句,当你试着使用API浏览器时:https://developers.google.com/apis-explorer/#s/calendar/v3/

格林威治标准时间对夏令时并不明智。 你应该用当地时间(在爱尔兰的情况下)。 解释。不同的国家有不同的开始和结束DST的日期。在

相关问题 更多 >

    热门问题