2014-01-30 111 views
1

我使用的是.NET的Google API(準確的說是VB.NET),它以我不明白的方式創建事件。如何在日曆時區以外的時區創建活動?

我的日曆是在東部時間,我試圖創建一個事件,將在另一個時區的固定時間。具體而言,我想要在洛杉磯當地時間下午1:00發生的事件發生在

這是我的代碼:

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 

在其他單詞,它知道使用太平洋時間,但它這樣做減去 三個小時。爲什麼要這樣做,以及如何在適當的時間創建一個活動?

回答

0

EventDateTime.DateTime總是當地時區所以,你必須設定日期的時區計算。在這種情況下是EventDateTime.TimeZone僅用於顯示時間偏移 - 你的情況(GMT-8),但不會影響時間本身

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

檢查這個article,如何確定時差

+0

謝謝,這就是我要做的。所以你說時區除了說「太平洋時間」之外其實並沒有用於其他任何事情?這看起來非常直觀。 –

+0

我花了一些時間在[類似](http://daily-reservation.appspot.com/)問題上,而不是決定通過UTC(小時 - myTimeZone + targetTimeZone) – Laky

+0

這就是我要做的,謝謝。但它對我來說似乎仍然有點兒冷淡。 –