链接到创建Google日历时间与实际时间不相符

时间:2017-05-20 22:58:27

标签: google-calendar-api

我有以下链接供用户创建Google日历活动

https://calendar.google.com/calendar/render?action=TEMPLATE&text=Your+Event+Name&dates=20140127T224000Z/20140320T221500Z&ctz=America/Los_Angeles&details=For+details,+link+here:+http://www.example.com&location=Waldorf+Astoria,+301+Park+Ave+,+New+York,+NY+10022&sf=true&output=xml#eventpage_6

我最初使用Link to add to google calendar

中的示例找到了这个

我遇到的问题是与URL的时间部分

有关
&dates=20140127T224000Z/20140320T221500Z

打破这种格式,谷歌用来确定开始/结束日期和时间

Ymd\\THi00\\Z

因此,您了解Google会将GMT用作网址中的标准时间,并根据其Google帐户中的用户设置正确转换。例如(GMT-07:00) Pacific Time

因此,我们只需要这个URL的开始时间

224000 which is Hi00 or Hour:Minutes:Seconds

在我的Google日历中,我的时区设置设置为太平洋-7。将224000 GMT转换为-7 Pacific,您得154000 3:40 PM

问题是当你点击链接时(如果你是太平洋),它会显示我的开始时间为2:40 PM

甚至更奇怪的是结束时间221500显示为3:15 PM。结束时间小时仍与开始时间相同,但显示提前1小时。我知道谷歌可能假设我的意思是提前1小时为我做出改变,或者默认情况下谷歌可能会自动从开始时间增加1小时。

我不确定我是否理解Google在网址中使用GMT的格式,或者我的编码存在问题以及我如何表示。任何人都有这方面的信息吗?

1 个答案:

答案 0 :(得分:1)

您可能需要查看此page,其中讨论了Google日历如何使用时区。如上所述,

  

创建活动时,您会在当地时区看到该活动。它也会在您邀请的任何人的本地时区显示,即使他们在不同的时区。

而且,在夏令时上:

  

Google日历使用Coordinated Universal Time (UTC)来帮助避免夏令时问题。

     

创建事件后,它们会转换为UTC,但您始终会在当地时间看到它们。

     

如果某个区域切换了他们的时区,那么在我们知道更改之前创建的事件可能位于错误的时区。

有了这个,你可能想尝试这个thread中的给定解决方法,看看它是否对你有帮助。