Chi tiết quan trọng về iCalendar RFC 2445
Về mô hình đối tượng Aspose iCalendar
Aspose.Email chứa tất cả các lớp mà Aspose cung cấp iCalendar thành phần RecurrencePattern và RecurrenceRule là các lớp trung tâm của Aspose iCalendar, và cung cấp các triển khai cụ thể cho các phần tử RFC 2445 tương ứng.
Cái RecurrencePattern lớp đại diện cho toàn bộ mẫu lặp lại. Bạn có thể tạo một mẫu lặp lại mới từ đầu bằng cách sử dụng hàm khởi tạo mặc định hoặc tải một mẫu đã tồn tại trong CalendarRecurrence. Thuộc tính RecurrenceRule lớp đại diện cho phần RRULE hoặc EXRULE của một mẫu lặp lại. RecurrenceRule phơi bày một số thuộc tính trực tiếp ánh xạ tới các đối tượng tương ứng trong tiêu chuẩn iCalendar. Ví dụ, ByMonth ánh xạ tới BYMONTH trong iCalendar và các thuộc tính tương tự. Bằng việc kiểm tra hoặc thiết lập các giá trị của RecurrenceRule các thuộc tính mà bạn có thể phân tích hoặc sửa đổi một quy tắc lặp lại. Để biết thêm thông tin và các mẫu mã, xem RecurrencePattern và RecurrenceRule trong Tham chiếu API.
Chi tiết quan trọng iCalendar RFC 2445
Phần này bao gồm các chủ đề sau:
- Định dạng Ngày và Giờ.
- DATE.
- DATE-TIME với Thời gian địa phương.
- DATE-TIME với Thời gian UTC.
- DATE-TIME với Thời gian địa phương và Múi giờ.
- BYWEEKNO Cung cấp Tuân thủ ISO 8601
Định dạng Ngày và Giờ
Ngày, hoặc ngày kèm thời gian liên quan, có thể được sử dụng trong các phần tử DTSTART, UNTIL, EXDATE và RDATE khi chỉ định một mẫu lặp lại. iCalendar định nghĩa kiểu giá trị DATE để nhận diện các giá trị chứa ngày lịch và cũng định nghĩa kiểu DATE-TIME để nhận diện các giá trị chỉ định ngày lịch và thời gian trong ngày một cách chính xác. Các giá trị DATE-TIME có thể được chỉ định dưới ba dạng, với:
- Thời gian địa phương.
- Thời gian UTC.
- Thời gian địa phương và múi giờ.
DATE
Theo tiêu chuẩn iCalendar, các giá trị DATE phải tuân theo định dạng yyyyMMdd. Ví dụ sau biểu thị ngày 14 tháng 7 năm 1997: 19970714
DATE-TIME với Thời gian địa phương
Ngày ở dạng thời gian địa phương chỉ đơn giản là một giá trị ngày‑giờ không chứa ký hiệu UTC và không tham chiếu đến múi giờ. Ví dụ, đoạn sau biểu thị ngày 18 tháng 1 năm 1998, lúc 23:00: DTSTART:19980118T230000. Các giá trị ngày‑giờ kiểu này được gọi là "floating" và không bị ràng buộc vào bất kỳ múi giờ nào cụ thể. Chúng được dùng để đại diện cho cùng một giá trị giờ, phút và giây bất kể múi giờ nào đang được áp dụng.
DATE-TIME với Thời gian UTC
Ngày có thời gian UTC, hoặc thời gian tuyệt đối, được xác định bằng một ký tự hậu tố Z (CHỮ HOA) Latin, biểu tượng UTC, được thêm vào giá trị thời gian. Ví dụ, đoạn sau biểu thị ngày 19 tháng 1 năm 1998, lúc 07:00 UTC: DTSTART:19980119T070000Z Lưu ý rằng Aspose iCalendar bỏ qua hậu tố Z định dạng UTC và coi thời gian là thời gian địa phương. Tiêu chuẩn RFC2445 quy định rằng phần thời gian được chỉ định trong quy tắc UNTIL của mẫu lặp lại phải ở định dạng UTC. Đây là một tuyên bố rất lạ, và thực tế, có những ví dụ trong tiêu chuẩn được tính toán sai. Aspose iCalendar chấp nhận thời gian ở bất kỳ định dạng nào trong quy tắc UNTIL.
DATE-TIME với Thời gian địa phương và Múi giờ
Để tham chiếu múi giờ, DATE-TIME được sửa đổi với thuộc tính TZID. Ví dụ, đoạn sau biểu thị 2 giờ sáng tại New York vào ngày 19 tháng 1 năm 1998: DTSTART;TZID=US-Eastern:19980119T020000. Lưu ý rằng Aspose iCalendar hiện tại bỏ qua tham số TZID và coi thời gian là thời gian địa phương.
BYWEEKNO Cung cấp Tuân thủ ISO 8601
Chỉ sử dụng BYWEEKNO khi tuân thủ với ISO 8601 được yêu cầu. Số tuần được định nghĩa theo ISO 8601 rất khác so với số tuần theo nghĩa thông thường. Theo ISO 8601, tuần số một của năm lịch là tuần đầu tiên của năm lịch có ít nhất bốn ngày. Quy tắc này làm cho thuật toán trở nên đặc thù cho các ứng dụng yêu cầu tuân thủ ISO 8601 và gần như không áp dụng cho các mục đích khác. ISO 8601 được một số ứng dụng ngân hàng và tài chính châu Âu hỗ trợ. Nó cũng được sử dụng trong truyền hình để đặt chỗ quảng cáo. Quy tắc BYWEEKNO xác định danh sách các số, ngăn cách bằng dấu phẩy, chỉ định các tuần của năm. Giá trị hợp lệ là 1 đến 53 và 1 đến 53. Điều này tương ứng với các tuần theo đánh số tuần được định nghĩa trong ISO 8601. BYWEEKNO chỉ hợp lệ cho các quy tắc YEARLY.