Java 在Google日历API中处理夏令时

Java 在Google日历API中处理夏令时,java,date,google-api,google-calendar-api,Java,Date,Google Api,Google Calendar Api,Google提供了根据DST在日历事件上显示时间的支持。然而,当我从 ,我在json中获得了不同时间的事件,尽管在UI上它们都有相同的时间,但在不同的日期。下面是一个例子: 我于2017年10月17日创建了一个活动,时间为当地时间16:00-17:00 另一项活动于2017-11-14创建,时间为当地时间16:00-17:00 在这两个日期之间,我们有一个DST时间开关。然而,那是在我的时区(东欧时区)。Google返回UTC格式的日期(日期末尾有“Z”) 谷歌是如何为用户界面上显示的同一时间返

Google提供了根据DST在日历事件上显示时间的支持。然而,当我从 ,我在json中获得了不同时间的事件,尽管在UI上它们都有相同的时间,但在不同的日期。下面是一个例子:

我于2017年10月17日创建了一个活动,时间为当地时间16:00-17:00

另一项活动于2017-11-14创建,时间为当地时间16:00-17:00

在这两个日期之间,我们有一个DST时间开关。然而,那是在我的时区(东欧时区)。Google返回UTC格式的日期(日期末尾有“Z”)

谷歌是如何为用户界面上显示的同一时间返回不同的UTC时间的?
我在后端处理这个问题时遇到了一些问题,因为我不清楚谷歌何时应用DST

你有没有注意到欧洲转向了欧洲

这应该可以解释一个小时的差异

当您在2017年10月17日16:00-17:00创建第一个事件时,它将使用偏移量
-02:00
转换为UTC


但是,第二个事件是使用偏移量
-01:00

转换的,UTC是否也切换?不,UTC保持不变。但您使用本地时间创建了事件,因此当转换为UTC时,您将看到切换和之后的不同。这是否意味着google总是在API中使用UTC,而不添加dst持续时间,但当我创建事件时,它在显示方面使用当前的dst规则?一般规则是,机器总是以UTC说话,当地时间中的人类。日历API中用于创建事件的确切字符串是什么?东欧时间夏季为UTC+3,冬季为UTC+2。因此,您在当地时间16:00的活动应分别为13:00 UTC和14:00 UTC。你确定你使用的是正确的当地时区吗?
start={dateTime=2017-10-17T14:00:00.000Z} 
start={dateTime=2017-11-14T15:00:00.000Z}