了解 RFC3339 时间戳标准

Understanding the RFC3339 TimeStamp Standard

我目前正在创建一个连接到 Google 日历 API 的简单登录 sheet。当用户输入提示信息时,包括开始日期时间和结束时间,它应该根据用户输入创建一个日历事件。我设法做到了,所以它成为了一个日历事件。但是,时间真的很奇怪,我不明白时间是如何推导出来的。

对于下面的代码,我假设它会在 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': 'lpage@example.com'},
        {'email': 'sbrin@example.com'}
      ],
      'reminders': {
        'useDefault': false,
        'overrides': [
          {'method': 'email', 'minutes': 24 * 60},
          {'method': 'popup', 'minutes': 10}
        ]
      }
  };

…Z 始终为 UTC。在 2016-12-16T14:00:00Z,纽约市上午 9 点。

要获得 NYC 的下午 2 点,请尝试离开 Z 以便根据 timezone 字段对其进行解析,或者直接传递 2016-12-16T19:00:00Z 这是您的时间戳想要。