Важные детали iCalendar RFC 2445
О модели объектов Aspose.iCalendar
Пространство имен Aspose.iCalendar содержит все классы, предоставляемые компонентом Aspose.iCalendar. RecurrencePattern и RecurrenceRule являются центральными классами Aspose.iCalendar и предоставляют конкретные реализации соответствующих элементов RFC 2445.
Класс RecurrencePattern представляет собой весь шаблон повторения. Вы можете создать новый шаблон повторения с нуля, используя конструктор по умолчанию, или загрузить существующий шаблон в формате iCalendar, используя статический метод FromiCalendar. Класс RecurrenceRule представляет собой часть RRULE или EXRULE шаблона повторения. RecurrenceRule предоставляет ряд свойств, которые напрямую соответствуют их аналогам в стандарте iCalendar. Например, ByMonth соответствует BYMONTH в iCalendar и так далее. Изучая или устанавливая значения свойств RecurrenceRule, вы можете анализировать или изменять правило повторения. Для получения дополнительной информации и примеров кода смотрите RecurrencePattern и RecurrenceRule в API Reference.
Важные детали iCalendar RFC 2445
В этом разделе рассматриваются следующие темы:
- Форматы даты и времени.
- DATE.
- DATE-TIME с местным временем.
- DATE-TIME с UTC временем.
- DATE-TIME с местным временем и временной зоной.
- BYWEEKNO обеспечивает соответствие ISO 8601
Форматы даты и времени
Даты, или даты с связанными временными значениями, могут использоваться в элементах DTSTART, UNTIL, EXDATE и RDATE при указании шаблона повторения. iCalendar определяет тип значения DATE для обозначения значений, содержащих календарную дату, а также определяет тип DATE-TIME для обозначения значений, которые указывают на точную календарную дату и время суток. Значения DATE-TIME могут быть указаны в трех формах:
- Местное время.
- UTC время.
- Местное время и временная зона.
DATE
Согласно стандарту iCalendar, значения DATE должны следовать формату yyyyMMdd. Следующий пример представляет 14 июля 1997 года: 19970714
DATE-TIME с местным временем
Форма даты с местным временем представляет собой значение даты-времени, которое не содержит обозначения UTC и не ссылается на временную зону. Например, следующее представляет 18 января 1998 года в 23:00: DTSTART:19980118T230000. Значения даты-времени этого типа называются “плавающими” и не привязаны к какой-либо конкретной временной зоне. Их используют для представления одного и того же часа, минуты и секунды независимо от текущей наблюдаемой временной зоны.
DATE-TIME с UTC временем
Дата с UTC временем или абсолютным временем определяется суффиксом латинской заглавной буквы Z, обозначающим UTC, добавленным к значению времени. Например, следующее представляет 19 января 1998 года в 07:00 UTC: DTSTART:19980119T070000Z Пожалуйста, обратите внимание, что Aspose.iCalendar игнорирует суффикс формата UTC Z и рассматривает время как местное время. Стандарт RFC2445 утверждает, что часть времени, указанная в правиле UNTIL шаблона повторения, должна быть в формате UTC. Это очень странное утверждение, и, на самом деле, в стандарте есть примеры, которые рассчитаны неверно. Aspose.iCalendar принимает время в любом формате в правиле UNTIL.
DATE-TIME с местным временем и временной зоной
Чтобы ссылаться на временную зону, DATE-TIME модифицируется с помощью свойства TZID. Например, следующее представляет 2 ночи в Нью-Йорке 19 января 1998 года: DTSTART;TZID=US-Eastern:19980119T020000. Пожалуйста, обратите внимание, что в данный момент Aspose.iCalendar игнорирует параметр TZID и рассматривает время как местное время.
BYWEEKNO обеспечивает соответствие ISO 8601
Используйте BYWEEKNO только тогда, когда требуется соответствие ISO 8601. Номера недель, определенные ISO 8601, очень отличаются от номеров недель в обычном понимании. Согласно ISO 8601, номер недели один календарного года - это первая неделя календарного года, которая содержит не менее четырех дней. Это правило делает алгоритм специфичным для приложений, требующих соответствия ISO 8601, и делает его практически неприменимым для других задач. ISO 8601 поддерживается некоторыми европейскими банковскими и финансовыми приложениями. Он также используется на телевидении для бронирования рекламного времени. Правило BYWEEKNO задает список номеров, разделенных запятыми, идентифицирующих недели года. Допустимые значения - от 1 до 53 и от 1 до 53. Это соответствует неделям в соответствии с номерованием недель, определенным в ISO 8601. BYWEEKNO действительно только для годовых правил.