2016-12-16 4 views
0

В настоящее время я создаю простую табличку с надписью, которая подключается к API календаря Google. Когда пользователь вводит запрашиваемую информацию, которая включает начало Datetime и Endtime, она должна создать событие календаря на основе ввода пользователя. Мне удалось сделать это, чтобы он сделал событие календаря. Однако время действительно странно, и я не понимаю, как это происходит.Понимание RFC3339 TimeStamp Standard

Для кода ниже я бы предположил, что он создаст событие Calendar в 2016-12-16 в 2 часа дня, но это не так, оно создает событие на 2016-12-16 в 9 утра. Почему это? Спасибо!

function makeEvent(){ 
    //Get the variable details 
    var eventDet = getInput(); 
    var event = { 
     'summary': eventDet[0] + ' Appointment', 
     'description': 'Telephone #: ' + eventDet[1] + ' Client Status: ' + eventDet[3], 
     'start': { 
     'dateTime': '2016-12-16T14:00:00Z', 
     'timeZone': 'America/New_York' 
     }, 
     'end': { 
     'dateTime': '2016-12-16T14:00:00Z', 
     'timeZone': 'America/New_York' 
     }, 
     'attendees': [ 
     {'email': '[email protected]'}, 
     {'email': '[email protected]'} 
     ], 
     'reminders': { 
     'useDefault': false, 
     'overrides': [ 
      {'method': 'email', 'minutes': 24 * 60}, 
      {'method': 'popup', 'minutes': 10} 
     ] 
     } 
    }; 
+0

Откуда вы взяли строку ''2016-12-16T14: 00: 00Z''? – Bergi

ответ

0

…Z всегда UTC. В 2016-12-16T14: 00: 00Z, это 9 утра в Нью-Йорке.

Чтобы получить 2pm в Нью-Йорке, пытаются либо убрав Z так, чтобы он мог получить разобран по timezone поле, или просто передать 2016-12-16T19:00:00Z что метка времени вы хотите.

+0

Итак, как вы это узнаете. Почему 2pm, 19: 00: 00z? –

+0

И когда я попытался уйти с z, google api жалуется, что поля отправлены некорректно. –

+0

Вы просто вычитаете смещение часовой пояс нового york из локальной даты. Однако, действительно, библиотека дат, в которой вы получаете данные, должна быть в состоянии предоставить вам это, поэтому не делайте этого вручную. – Bergi