Календари Microsoft и Google автоматически обрабатывают сложности, связанные с часовым поясом, чтобы я мог использовать их данные API в качестве источника истины?

#c# #datetime #timezone #microsoft-graph-api #google-calendar-api

#c# #дата и время #Часовой пояс #microsoft-graph-api #google-calendar-api

Вопрос:

Я создаю приложение типа планирования, которое зависит от пользовательских календарей Microsoft или Google.

По сути, мое приложение обрабатывает время событий, возвращаемое API-интерфейсами Microsoft / Google Calendar, в качестве опорных точек.

«За 30 минут до события» означает время UTC за 30 минут до времени UTC этого события, возвращаемого API календаря, при условии, что эти данные являются последней версией, независимо от того, как мог измениться часовой пояс пользователя / устройства.

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

Но поскольку мое приложение не поддерживает свой собственный календарь, вместо этого оно использует данные календаря Microsoft / Google, могу ли я предположить, что любые данные, которые я получаю, всегда верны на данный момент времени?

Поэтому, если изменение часового пояса происходит из-за правительственных / политических факторов, я буду полагаться на Microsoft / Google для обновления календарного времени пользователя, включая повторный расчет любых будущих / повторяющихся событий. Я просто удостоверяюсь, что мои данные синхронизированы с API календаря (через API уведомлений об изменениях и / или периодический опрос).

Ваш совет по этому поводу был бы очень признателен!

Комментарии:

1. Это хорошо в UTC .. В нем нет никаких дополнительных споров, это всего лишь момент времени.. Но люди на самом деле не думают об этом, потому что они в нем не живут, и в результате его техническое совершенство на самом деле оказывается неправильным. Джон Скит написал еще кое-что об этом, и, я думаю, вам стоит прочитать — codeblog.jonskeet.uk/2019/03/27 /…

2. Привет. Не могли бы вы указать конкретный API, который вы используете, и код, который вы используете с этим API? Как минимум, укажите на документ для этого API и сообщите нам, о каком объекте и поле вы говорите. Также был бы полезен пример. Очень сложно ответить в общих чертах.

3. Я могу ответить на вопрос в вашем названии просто: «Да». Но я не верю, что это то, что вы ищете.

4. Я согласен с @MattJohnson-Pint выше, поскольку я использую календарь Microsoft с использованием Microsoft Graph, я могу сказать, что это ДА. Он также предоставляет уведомления / подписки / дельты для отслеживания.