Ważne szczegóły iCalendar RFC 2445

O modelu obiektowym Aspose iCalendar

Aspose.Email zawiera wszystkie klasy dostarczane przez Aspose iCalendar komponent RecurrencePattern i RecurrenceRule są centralnymi klasami Aspose iCalendar, i dostarczyć konkretne implementacje odpowiadających elementów RFC 2445.

Ten RecurrencePattern klasa reprezentuje cały wzorzec powtarzania. Możesz utworzyć nowy wzorzec powtarzania od podstaw, używając domyślnego konstruktora lub załadować istniejący wzorzec w CalendarRecurrence. The RecurrenceRule klasa reprezentuje część RRULE lub EXRULE wzorca powtarzania. RecurrenceRule ujawnia szereg właściwości, które bezpośrednio odpowiadają ich odpowiednikom w standardzie iCalendar. Na przykład, ByMonth mapuje na BYMONTH w iCalendar i tak dalej. Analizując lub ustawiając wartości RecurrenceRule właściwości, które pozwalają analizować lub modyfikować regułę powtarzania. Po więcej informacji i przykładów kodu zobacz RecurrencePattern i RecurrenceRule w dokumentacji API.

Ważne szczegóły iCalendar RFC 2445

Ta sekcja zawiera następujące tematy:

  • Formaty daty i czasu.
  • DATE.
  • DATE‑TIME z czasem lokalnym.
  • DATE‑TIME z czasem UTC.
  • DATE‑TIME z czasem lokalnym i strefą czasową.
  • BYWEEKNO zapewnia zgodność z ISO 8601

Formaty daty i czasu

Daty, lub daty z powiązanymi czasami, mogą być używane w elementach DTSTART, UNTIL, EXDATE i RDATE przy określaniu wzorca powtarzania. iCalendar definiuje typ wartości DATE, aby oznaczyć wartości zawierające datę kalendarzową, oraz definiuje typ DATE‑TIME, aby oznaczyć wartości określające precyzyjną datę kalendarzową i czas dnia. Wartości DATE‑TIME mogą być podawane w trzech formach, z:

  • Czas lokalny.
  • Czas UTC.
  • Czas lokalny i strefa czasowa.

DATE

Zgodnie ze standardem iCalendar, wartości DATE muszą mieć format yyyyMMdd. Poniższy przykład przedstawia 14 lipca 1997: 19970714

DATE‑TIME z czasem lokalnym

Data w formie czasu lokalnego to po prostu wartość date-time, która nie zawiera designatora UTC i nie odwołuje się do strefy czasowej. Na przykład, poniższy zapis reprezentuje 18 stycznia 1998, 23:00: DTSTART:19980118T230000. Wartości date-time tego typu określane są jako „pływające” i nie są związane z żadną konkretną strefą czasową. Są używane do reprezentowania tej samej godziny, minuty i sekundy niezależnie od aktualnie obowiązującej strefy czasowej.

DATE‑TIME z czasem UTC

Data z czasem UTC, czyli czasem absolutnym, jest oznaczana przez wielką literę Z jako przyrostek, designator UTC, dołączony do wartości czasu. Na przykład, poniższy zapis reprezentuje 19 stycznia 1998, 07:00 UTC: DTSTART:19980119T070000Z Należy zauważyć, że Aspose iCalendar ignoruje przyrostek Z oznaczający format UTC i traktuje czas jako lokalny. Standard RFC2445 stwierdza, że część czasowa określona w regule UNTIL wzorca powtarzania musi być w formacie UTC. To bardzo dziwne stwierdzenie i w rzeczywistości istnieją przykłady w standardzie, które są obliczane niepoprawnie. Aspose iCalendar akceptuje czas w dowolnym formacie w regule UNTIL.

DATE‑TIME z czasem lokalnym i strefą czasową

Aby odwołać się do strefy czasowej, DATE-TIME jest modyfikowane właściwością TZID. Na przykład, poniższy zapis reprezentuje 2:00 w Nowym Jorku 19 stycznia 1998: DTSTART;TZID=US-Eastern:19980119T020000. Należy zauważyć, że Aspose iCalendar obecnie ignoruje parametr TZID i traktuje czas jako czas lokalny.

BYWEEKNO zapewnia zgodność z ISO 8601

Używaj BYWEEKNO tylko gdy zgodność z ISO 8601 jest wymagane. Numery tygodni definiowane przez ISO 8601 różnią się znacznie od numeracji tygodni w zwykłym rozumieniu. Zgodnie z ISO 8601, tydzień numer jeden roku kalendarzowego to pierwszy tydzień roku kalendarzowego, który zawiera co najmniej cztery dni. Ta reguła sprawia, że algorytm jest specyficzny dla aplikacji wymagających zgodności z ISO 8601 i prawie nie ma zastosowania w innych przypadkach. ISO 8601 jest wspierane przez niektóre europejskie aplikacje bankowe i finansowe. Jest także używane w telewizji do rezerwacji reklam. Reguła BYWEEKNO określa listę liczb oddzielonych przecinkami, identyfikujących tygodnie roku. Dopuszczalne wartości to od 1 do 53 i od 1 do 53. Odpowiada to tygodniom według numeracji tygodni określonej w ISO 8601. BYWEEKNO jest ważne tylko dla reguł ROKOWYCH.