2013-05-16 12 views
5

sto giocando intorno con l'interfaccia di programmazione di Google Calendar all'indirizzo:API Google Calendar: TimeZone non preso in considerazione da google server?

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

Quando eseguo la seguente richiesta ottengo la seguente risposta:

Richiesta:

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" 
} 

di risposta:

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 
} 
} 

Ho pensato che il .01Z alla fine delle voci DateTime specificasse il fuso orario +01 (ora centrale europea), ma invece sembra che lo il server di google lo ignori e lo converta in GMT (un'ora di differenza ) senza aggiungere 1 alle ore, visualizzando l'evento come se si verificasse un'ora fuori da quando specificato. In particolare preavviso:

Richiesta:

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

Risposta:

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

Google ha appena compiuto il .01Z in .00Z senza chanight 19:30-20:30 alle 20:30 alle 21:30. Cosa c'è qui? Ho sbagliato la sintassi? Se è così allora come?

Grazie.

+1

Ho lo stesso problema. L'API di Google sta ignorando il fuso orario. Sto passando "timezone": "America/Los_Angeles" e il tempo viene ancora convertito in GMT da Google. –

risposta

0

L'API accetta un parametro "timeZone". Potresti provare a passare un valore di fuso orario come "GMT + 1: 00" o "UTC + 1: 00".

Abbiamo avuto un problema simile nella nostra squadra prima e abbiamo semplicemente giocato con i valori per sistemare le cose.

+0

Lo sto facendo ma gli eventi restituiti sono uguali se imposto il fuso orario su "GMT + 1: 00", su "GMT + 1", su "GMT" su "Europa/Londra" o anche se non lo faccio Non l'ho impostato affatto. Sono tutti tempi dell'US West Coast, che è per qualche motivo il fuso orario del calendario. Mi manca lo scopo di quel parametro di input o viene ignorato? – Dimitris

+1

Hai provato a rimuovere il .01Z o .00Z? È passato un po 'di tempo, ma se richiamo le cose correttamente, Z indica Zulu Time o ciò che è comunemente noto come GMT. Questo è probabilmente il motivo per cui stai ancora ottenendo risultati GMT. – iamthearvin

+0

Grazie per questo. Tuttavia rimuovere la "Z" o aggiungere un ".00Z" o un ".06Z" o altre cose simili hanno dato tutti gli stessi risultati ... – Dimitris

Problemi correlati