Outlook изменяет события ICS All Day UTC при изменении часового пояса

В настоящее время я использую стандартное восточное время, и у меня запланировано мероприятие, которое должно пройти весь день 14 сентября 2018 года. Когда я загружаю этот календарь ICS в свой Outlook 2016 на компьютере с Windows 10, когда мой компьютер находится в часовом поясе EST, он показывает событие правильно как весь день. Однако, если я изменил свой часовой пояс на что-то вроде Центрального времени, он изменит событие на с 23:00 до 23:00.

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

Я также проверил свои параметры в Outlook, и часовой пояс изменился, как я ожидал.

Я также протестировал тот же самый файл календаря ics на другом компьютере, который работает по восточному поясному времени. И дата показывает с 8 утра до 8 утра, а не весь день.

Почему я вижу такие разные результаты? Есть ли параметр, который мне не хватает?

Часовой пояс ICS:

BEGIN:VTIMEZONE
TZID:UTC
BEGIN:STANDARD
DTSTART;VALUE=DATE:20170101
TZNAME:UTC
TZOFFSETFROM:+0000
TZOFFSETTO:+0000
END:STANDARD
END:VTIMEZONE

Событие ICS:

BEGIN:VEVENT
DESCRIPTION: Test description
DTEND;VALUE=DATE:20180915
DTSTAMP:20180912T123153Z
DTSTART;VALUE=DATE:20180914
ORGANIZER;Tester
SEQUENCE:0
SUMMARY: TestSubject
UID:69c1777d-71e4-4160-81c7-79b35d9cf924
BEGIN:VALARM
ACTION:Display
DESCRIPTION:Reminder
TRIGGER:-PT15M
END:VALARM
END:VEVENT
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
390
1

Ответы 1

Прежде всего, вам не нужно включать компонент VTIMEZONE в поток icalendar, поскольку на него не будет ссылаться само событие.

Затем, если продолжительность составляет ровно один день, вы можете попробовать удалить DTEND.

Другой вариант - представить это событие как событие с плавающим временем (т.е. DATETIME без указания часового пояса).

DTSTART:20180914T000000
DTEND:20180915T000000

Наконец, у вас всегда есть возможность создать событие в Outlook, проверить, не перемещается ли оно при переключении часового пояса, затем экспортировать его как ics и посмотреть, как оно представлено.

Другие вопросы по теме