Christopher Fernandes Ответов: 1

Зачем использовать часовой пояс для даты начала и окончания событий


Я знаю, что это идеальная практика для хранения значений даты начала и окончания событий в таблице базы данных путем преобразования из местного времени в UTC. А затем, отображая его в календаре, преобразуйте его обратно в местное время или предпочтительный часовой пояс пользователя.

Но я не могу понять, почему Google хранит название часового пояса для даты начала и окончания в приведенном ниже коде

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'}
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10}
    ]
  }
};

var request = gapi.client.calendar.events.insert({
  'calendarId': 'primary',
  'resource': event
});

request.execute(function(event) {
  appendPre('Event created: ' + event.htmlLink);
});


Что я уже пробовал:

Я пытаюсь создать простое приложение для сигнализации с поддержкой часового пояса. Я сохраняю значения даты и времени в таблице БД, преобразуя их из местного времени в UTC

1 Ответов

Рейтинг:
2

User 7429338

Рассмотрим событие, проходящее с 10 по 12 марта, с переходом на летнее время, которое вступает в силу 11 марта. В этом случае часовой пояс в начале события в Лос-Анджелесе будет PST (Тихоокеанское стандартное время), а в конце-PDT (Тихоокеанское летнее время).


Christopher Fernandes

Таким образом, он используется для указания того, что событие было создано в определенном часовом поясе перед преобразованием в UTC

[no name]

В вашем примере время начала и окончания находится не в UTC, а в PST. Мероприятие проходит с 9 утра до 5 вечера по Гринвичу-7. То timeZone строка-это просто более дружелюбное представление GMT-7.