Важные детали iCalendar RFC 2445
Об объектной модели Aspose iCalendar
Aspose.Email содержит все классы, предоставляемые Aspose iCalendar компонент RecurrencePattern и RecurrenceRule являются центральными классами Aspose iCalendar, и предоставить конкретные реализации соответствующих элементов RFC 2445.
Этот RecurrencePattern класс представляет весь шаблон повторения. Вы можете создать новый шаблон с нуля, используя конструктор по умолчанию, или загрузить существующий шаблон в CalendarRecurrence. Это RecurrenceRule класс представляет часть RRULE или EXRULE шаблона повторения. RecurrenceRule предоставляет ряд свойств, которые напрямую соответствуют их аналогам в стандарте iCalendar. Например, ByMonth соответствует BYMONTH в iCalendar и т.д. При просмотре или установке значений RecurrenceRule свойства, с помощью которых можно анализировать или изменять правило повторения. Для получения дополнительной информации и образцов кода см. RecurrencePattern и RecurrenceRule в справочнике API.
Важные детали 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 игнорирует суффикс Z формата UTC и рассматривает время как локальное. Стандарт 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 действительно только для YEARLY правил.