Процитированный абзац состоит из трех частей:
часть 1
Значение части правила UNTIL ДОЛЖНО иметь тот же тип значения, что и свойство «DTSTART».
Это относится к типу значения, то есть VALUE=DATE
vs. VALUE=DATE-TIME
. Если это событие на весь день, дата UNTIL
также должна быть указана как дата на целый день, в противном случае дата UNTIL
должна иметь компонент времени.
часть 2
Более того, если свойство «DTSTART» указано как дата с местным временем, то часть правила UNTIL также ДОЛЖНА быть указана как дата с местным временем.
В этом контексте «местное время» означает «плавающее время», как указано в разделе 3.3.5. (Форма №1), в которой говорится:
ФОРМА №1: ДАТА ПО МЕСТНОМУ ВРЕМЕНИ
Дата с местным временем - это просто значение DATE-TIME, которое не содержит указателя UTC и не указывает часовой пояс. Например, следующее представляет 18 января 1998 г., 23:00:
19980118T230000
Значения ДАТА-ВРЕМЯ этого типа называются «плавающими» и не привязаны к какому-либо конкретному часовому поясу.
Это также включает VALUE=DATE
дат.
Если DTSTART
является плавающим, то есть не привязанным к какому-либо конкретному часовому поясу, значение UNTIL
не может быть абсолютным временем, в противном случае фактическое окончание правила будет зависеть от вашего текущего часового пояса.
Как уже отмечалось, это не относится к RRULE
внутри определений VTIMEZONE
.
часть 3
Если свойство «DTSTART» указано как дата со временем в формате UTC или дата со ссылкой на местное время и часовой пояс, то часть правила UNTIL ДОЛЖНА быть указана как дата с временем в формате UTC.
Ключевое отличие состоит в том, что в этом предложении говорится об абсолютном DTSTART
времени в формате UTC или по местному времени со ссылкой на часовой пояс (как в приведенных примерах).
Это относится к Форме № 2 и Форме № 3 Раздела 3.3.5 . Если значение DTSTART
соответствует любой из этих форм, значение UNTIL
должно быть указано во времени UTC. Я думаю, что причина этого в том, что вам не нужно указывать часовой пояс для UNTIL
даты, если вы используете нотацию «zulu» (и вы не можете предположить, что вы можете использовать часовой пояс DTSTART
для UNTIL
).
изменить
Поскольку "плавающее время" не очень распространено в клиентах календаря, вы почти не увидите даты, отличные от UTC UNTIL
. В Thunderbird / Lightning вы можете явно выбрать «Местное время» для события, которое создает плавающее событие. В этом случае вы также должны получить значение UNTIL
по местному времени.
person
Marten
schedule
21.01.2016