如何在日历时区以外的时区创建活动?

时间:2014-01-30 20:44:28

标签: .net google-api

我正在使用.NET中的Google API(确切地说是VB.NET),并且它以我不理解的方式创建事件。

我的日历是在东部时间,我正在尝试创建一个将在另一个时区中的固定时间的事件。具体来说,我想在洛杉矶当地时间下午1点发生一个事件

这是我的代码:

Dim dStart As New DateTime(2014, 1, 30, 13, 0, 0)
Dim dEnd = dStart.AddHours(2)

e.Start = New EventDateTime With {.DateTime = dStart, .TimeZone = "America/Los_Angeles"}
e.End = New EventDateTime With {.DateTime = dEnd, .TimeZone = "America/Los_Angeles"}

Dim ins As New InsertRequest(service, e, calendar.Id)
ins.Execute()

我希望这会发生这样的事件:

1/30/2014 @ 1:00PM (GMT-08:00) Pacific Time

但相反,它创造了这个事件:

1/30/2014 @ 10:00AM (GMT-08:00) Pacific Time

换句话说,它知道使用太平洋时间,但是这样做减去三个小时。为什么会这样做,如何在合适的时间创建活动?

1 个答案:

答案 0 :(得分:0)

EventDateTime.DateTime 始终以您的本地时区计算所以您必须在您的时区中设置日期。在这种情况下, EventDateTime.TimeZone 仅用于显示时间偏移 - 在您的情况下(GMT-8)但不会影响时间本身

Dim dStart As New DateTime(2014, 1, 30, 13 - myTimeZone + targetTimeZone, 0, 0)

选中此article,如何确定时区差异