Важные детали календаря RFC 2445

Об объектной модели Aspose iCalendar

Aspose.Email содержит все классы, предоставленные Aspose iCalendar component RecurrencePattern and RecurrenceRule являются центральными классами Aspose iCalendar, и обеспечьте конкретные реализации соответствующих элементов RFC 2445.

The RecurrencePattern класс представляет собой весь паттерн повторения. Вы можете создать новый шаблон повторения с нуля, используя конструктор по умолчанию, или загрузить существующий шаблон в CalendarRecurrence. RecurrenceRule класс представляет собой часть паттерна рекуррентности RRULE или EXRULE. RecurrenceRule предоставляет ряд свойств, которые напрямую соответствуют своим аналогам в стандарте iCalendar. Например, ByMonth сопоставляет значение BYMONTH в iCalendar и так далее. Изучив или установив значения поля RecurrenceRule свойства, которые можно проанализировать или изменить правило повторения. Дополнительные сведения и примеры кода см. RecurrencePattern and RecurrenceRule в Справочнике по API.

Важные детали календаря RFC 2445

В этом разделе рассматриваются следующие темы:

  • Форматы даты и времени.
  • DATE.
  • ДАТА И ВРЕМЯ с местным временем.
  • ДАТА И ВРЕМЯ с временем UTC.
  • DATE-TIME с местным временем и часовым поясом.
  • BYWEEKNO обеспечивает соответствие стандарту ISO 8601

Форматы даты и времени

Даты или даты со связанным временем можно использовать в элементах DTSTART, UNTIL, EXDATE и RDATE при указании шаблона повторяемости. iCalendar определяет тип значения DATE для идентификации значений, содержащих календарную дату, а также определяет тип DATE-TIME для идентификации значений, указывающих точную календарную дату и время суток. Значения DATE-TIME можно указать в трех формах:

  • По местному времени.
  • Время в формате UTC.
  • Местное время и часовой пояс.

DATE

Согласно стандарту iCalendar, значения DATE должны соответствовать формату YYYMMDD. В следующем примере показано 14 июля 1997 года: 19970714

ДАТА И ВРЕМЯ с местным временем

Дата в форме местного времени — это просто значение даты и времени, которое не содержит обозначения UTC и не указывает на часовой пояс. Например, 18 января 1998 года в 23:00 указано следующее: DTSTART:19980118T230000. Значения даты и времени этого типа считаются «плавающими» и не привязаны к какому-либо конкретному часовому поясу. Они используются для представления одного и того же значения часов, минут и секунд независимо от того, какой часовой пояс соблюдается в данный момент.

ДАТА И ВРЕМЯ с временем UTC

Дата с указанием времени UTC или абсолютного времени обозначается латинским суффиксом ЗАГЛАВНОЙ БУКВЫ Z (обозначение UTC), которое добавляется к значению времени. Например, 19 января 1998 года в 07:00 UTC указано следующее: DTSTART:19980119T070000Z Обратите внимание, что Aspose iCalendar игнорирует суффикс Z в формате UTC и рассматривает время как местное время. Стандарт RFC2445 гласит, что часть времени, указанная в правиле UNTIL для повторяющегося шаблона, должна быть в формате UTC. Это очень странное утверждение, и на самом деле в стандарте есть примеры, которые рассчитаны неправильно. Предположим 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 действителен только для годовых правил.