2013-05-16 29 views
5

Tôi đang chơi đùa với các lịch giao diện chương trình google tại địa chỉ:API Lịch Google: TimeZone không được máy chủ google đưa vào tài khoản?

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

Khi tôi thực hiện yêu cầu sau đây tôi nhận được câu trả lời sau đây:

Yêu cầu:

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

đáp ứng:

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

Tôi nghĩ rằng .01Z ở cuối mục DateTime sẽ chỉ định múi giờ +01 (Giờ Trung Âu), nhưng thay vào đó có vẻ như máy chủ google chỉ bỏ qua và chuyển đổi thành GMT (một giờ sự khác biệt) mà không cần thêm 1 giờ, hiển thị sự kiện khi diễn ra một giờ bên ngoài khi được chỉ định. Trong thông báo cụ thể:

Yêu cầu:

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

đáp ứng:

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

Google vừa bước sang các .01Z vào .00Z mà không chanight 19:30-20:30 và 20:30 đến 21:30. Có gì ở đây? Tôi có sai cú pháp không? Nếu vậy thì làm thế nào?

Cảm ơn.

+1

Tôi gặp vấn đề tương tự. Google API không tính đến múi giờ. Tôi đang chuyển "múi giờ": "America/Los_Angeles" và thời gian vẫn được Google chuyển đổi thành GMT. –

Trả lời

0

API chấp nhận tham số 'timeZone'. Bạn có thể muốn thử chuyển giá trị múi giờ như 'GMT + 1: 00' hoặc 'UTC + 1: 00'.

Chúng tôi đã gặp sự cố tương tự trong nhóm của chúng tôi trước đây và chúng tôi chỉ chơi xung quanh với các giá trị để làm đúng.

+0

Tôi đang làm điều đó nhưng các sự kiện vẫn được trả về nếu tôi đặt múi giờ thành "GMT + 1: 00", thành "GMT + 1", thành "GMT" thành "Châu Âu/Luân Đôn" hoặc thậm chí nếu tôi không ' t đặt nó ở tất cả. Họ là tất cả thời gian Bờ Tây Hoa Kỳ, đó là vì lý do nào đó múi giờ của lịch. Tôi có thiếu mục đích của tham số đầu vào đó hay là nó bị bỏ qua? – Dimitris

+1

Bạn đã thử xóa .01Z hoặc .00Z chưa? Đã một thời gian, nhưng nếu tôi nhớ lại những điều đúng, Z cho biết Zulu Time hoặc những gì thường được gọi là GMT. Đó có lẽ là lý do tại sao bạn vẫn nhận được kết quả GMT. – iamthearvin

+0

Cảm ơn vì điều này. Tuy nhiên việc xóa "Z" hoặc thêm ".00Z" hoặc ".06Z" hoặc các thứ tương tự khác đều mang lại kết quả tương tự ... – Dimitris

Các vấn đề liên quan