2013-05-16 82 views
5

我玩弄與谷歌日曆編程接口在:谷歌日曆API:TimeZone谷歌服務器沒有考慮到?

https://developers.google.com/google-apps/calendar/v3/reference/events/insert#try-it

當我執行下面的請求,我得到如下回應:

請求:

POST https://www.googleapis.com/calendar/v3/calendars/o38t4tnqifv4kdanjkmegs2uqk%40group.calendar.google.com/events?key={YOUR_API_KEY} 

Content-Type: application/json 
Authorization: Bearer ya29.AHES6ZRv_qi4OhIhzN1C8YifUSO4mmXjufeKhaPmbyaRw3FVhXIgJQ 
X-JavaScript-User-Agent: Google APIs Explorer 

{ 
"end": { 
"dateTime": "2013-04-07T20:30:00.01Z" 
}, 
"start": { 
"dateTime": "2013-04-07T19:30:00.01Z" 
}, 
"description": "Just testing, 2003.", 
"extendedProperties": { 
"private": { 
"foo": "bar" 
} 
}, 
"summary": "Hello World 1" 
} 

響應:

200 OK 

- Show headers - 
{ 
"kind": "calendar#event", 
"etag": "\"78Bu1G8fWt0vPGZK2Ckfad3ZtNE/Z2NhbDAwMDAxMzY4NzE0MzM1NTc3MDAw\"", 
"id": "e2pfv3men0e9r5mv4qp7hrsqs8", 
"status": "confirmed", 
"htmlLink": "https://www.google.com/calendar/event?eid=ZTJwZnYzbWVuMGU5cjVtdjRxcDdocnNxczggbzM4dDR0bnFpZnY0a2RhbmprbWVnczJ1cWtAZw", 
"created": "2013-05-16T14:25:35.000Z", 
"updated": "2013-05-16T14:25:35.577Z", 
"summary": "Hello World 1", 
"description": "Just testing, 2003.", 
"creator": { 
"email": "[email protected]" 
}, 
"organizer": { 
"email": "[email protected]", 
"displayName": "ClientEventManager", 
"self": true 
}, 
"start": { 
"dateTime": "2013-04-07T19:30:00Z" 
}, 
"end": { 
"dateTime": "2013-04-07T20:30:00Z" 
}, 
"iCalUID": "[email protected]", 
"sequence": 0, 
"extendedProperties": { 
"private": { 
"foo": "bar" 
} 
}, 
"reminders": { 
"useDefault": true 
} 
} 

我以爲01.01Z在DateTime條目的末尾會指定 的+01時區(歐洲中部時間),但它似乎 谷歌服務器只是忽略它並將其轉換爲GMT(一小時 區別),而不在小時數加1,顯示事件 在指定時間之外發生一小時。 特別聲明:

請求:

{ 
"end": { 
"dateTime": "2013-04-07T20:30:00.01Z" 
}, 
"start": { 
"dateTime": "2013-04-07T19:30:00.01Z" 
}, 

響應:

"start": { 
"dateTime": "2013-04-07T19:30:00Z" 
}, 
"end": { 
"dateTime": "2013-04-07T20:30:00Z" 
}, 

谷歌剛剛開啓.01Z到.00Z沒有chanight 19:30至20:30 20:30到21:30。這是怎麼回事?我的語法錯了嗎?如果是的話那怎麼樣?

謝謝。

+1

我有同樣的問題。 Google API不考慮時區。我正在通過「時區」:「America/Los_Angeles」,時間仍然由Google轉換爲GMT。 –

回答

0

該API接受'timeZone'參數。您可能想嘗試傳遞時區值,如'GMT + 1:00'或'UTC + 1:00'。

我們之前在我們的團隊中遇到過類似的問題,我們只是玩弄價值觀來讓事情正確。

+0

我這樣做,但如果將時區設置爲「GMT + 1:00」,「GMT + 1」,「GMT」設置爲「歐洲/倫敦」,或者即使我不設置時區,根本不需要設置它。他們都是美國西海岸時間,這是由於某些原因日曆的時區。我是否錯過了該輸入參數的用途,還是被忽略? – Dimitris

+1

您是否試過刪除.01Z或.00Z?它已經有一段時間了,但如果我回憶起事情是正確的,Z表示祖魯時間或通常稱爲GMT的時間。這可能就是爲什麼你仍然得到GMT的結果。 – iamthearvin

+0

感謝您的支持。然而,刪除「Z」或添加「.00Z」或「.06Z」或其他類似的東西都產生了相同的結果... – Dimitris