MS Outlook неверно интерпретирует файлы ICS по местному времени: чрезмерная коррекция летнего времени - PullRequest
6 голосов
/ 24 октября 2010

Кто-нибудь знает способ в файле ICS указать, что все время записывается по местному времени в месте? Я думал, что оставив Z в конце времен и используя TZID = "America / Denver" (например) в строках DTSTART и DTEND, это удалось, но MS Outlook предполагает, что все времена соответствуют стандартному времени расположения. Все мои мероприятия учитывают переход на летнее время.

Нужно ли переписывать приложение, чтобы время было в UTC?

Нужно ли включать в начале блок, который определяет какой-либо часовой пояс? Это сложно, так как я хочу поддерживать каждый часовой пояс в базе данных Olson.

Но в настоящее время MS Outlook переносит каждую встречу в летнее время на один час, что неправильно.

Заранее спасибо за любую помощь.

1 Ответ

3 голосов
/ 18 июня 2012

У меня была очень похожая проблема, и я провел много исследований, но решение до сих пор не самое лучшее.Я не уверен, почему Outlook не обрабатывает местное время правильно, он делает планирование встреч местного времени для других часовых поясов большой проблемой.Стандарт четко указывает на то, что если часовой пояс не указан и символ UTC «Z» не используется, то время должно быть одинаковым независимо от того, в каком часовом поясе находится получатель. Однако Outlookне придерживается этого и изменяет время в зависимости от времени отправляющего клиента и времени получающего клиента.

В моем случае у меня работает сайт, который позволяет определенным пользователям назначать встречи другим пользователям. Эти пользователи могут находиться в разных часовых поясах.К счастью для меня, сайт специально размещен только в одном часовом поясе.Таким образом, я решил написать простой оператор c # switch, который компенсирует время в зависимости от того, где находится пользователь-получатель относительно сервера.Я не указываю часовой пояс в файле .ics, а я не отмечаю время как UTC через символ 'Z'.

...