Важливі деталі iCalendar RFC 2445
Про модель об’єктів Aspose iCalendar
Aspose.Email містить усі класи, надані Aspose iCalendar компонент RecurrencePattern і RecurrenceRule є центральними класами Aspose iCalendar, і надати конкретні реалізації відповідних елементів RFC 2445.
The RecurrencePattern клас представляє весь рекурентний шаблон. Ви можете створити новий рекурентний шаблон з нуля, використовуючи конструктор за замовчуванням, або завантажити існуючий шаблон у CalendarRecurrence. The 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 з локальним часом
Дата у формі локального часу — це просто значення date‑time, яке не містить позначки UTC і не посилається на часовий пояс. Наприклад, наступне представляє 18 січня 1998 року о 23:00: DTSTART:19980118T230000. Значення date‑time такого типу називаються "плаваючими" і не прив’язані до жодного конкретного часового поясу. Вони використовуються для представлення однакових годин, хвилин і секунд незалежно від того, який часовий пояс наразі застосовується.
DATE‑TIME з часом UTC
Дата з часом UTC, або абсолютним часом, позначається латинською великою літерою Z, що додається до значення часу. Наприклад, наступне представляє 19 січня 1998 року о 07:00 UTC: DTSTART:19980119T070000Z. Будь ласка, зауважте, що Aspose iCalendar ігнорує суфікс Z у форматі UTC і розглядає час як локальний. Стандарт RFC2445 стверджує, що частина часу, вказана в правилі UNTIL рекурентного шаблону, має бути у форматі UTC. Це дуже дивне твердження, і, фактично, у стандарті є приклади, розраховані некоректно. Aspose iCalendar приймає час у будь‑якому форматі в правилі UNTIL.
DATE‑TIME з локальним часом та часовим поясом
Щоб посилатися на часовий пояс, DATE‑TIME модифікується властивістю TZID. Наприклад, наступне представляє 2:00 в Нью‑Йорку 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) правил.