2016-12-16 8 views
0

私は現在、GoogleカレンダーAPIに接続する簡単なサインインシートを作成しています。ユーザーがStart DatetimeとEndtimeを含むプロンプト情報を入力すると、ユーザー入力に基づいてカレンダーイベントを作成する必要があります。私はそれをカレンダーイベントにするように管理しました。しかし、タイミングは本当に奇妙で、私は時代がどのように引き出されているのか理解していません。RFC3339タイムスタンプ標準の理解

以下のコードでは、2016-12-16の午後2時にカレンダーイベントが作成されると想定していますが、午後9時には2016-12-16にイベントが作成されます。何故ですか?ありがとうございました!

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時です。 NYCで午後を取得するために

、それはtimezoneフィールドに従って解析、または単にあなたが欲しいのタイムスタンプである2016-12-16T19:00:00Zを通過してしまうかもしれませんようにZをオフのままのいずれかしてみてください。

+0

これはどうやって派生したのですか?なぜ午後2時、19時00分00秒ですか? –

+0

私がzを離れようとしたとき、Google apiはフィールドが正しく提出されないと文句を言います –

+0

ローカル日付からオフセットした新しいyorksタイムゾーンを差し引くだけです。しかし、実際にデータを取得する日付ライブラリは、それをあなたに提供できるはずなので、手動で行うべきではありません。 – Bergi