รายละเอียดสำคัญของ iCalendar RFC 2445

เกี่ยวกับโมเดลวัตถุ Aspose iCalendar

Aspose.Email มีคลาสทั้งหมดที่ Aspose ให้บริการ iCalendar component 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. ค่าตรงวันที่เวลาแบบนี้เรียกว่า "floating" และไม่ได้ผูกกับโซนเวลาใดเป็นพิเศษ ใช้เพื่อแสดงค่า ชั่วโมง นาที และวินาทีเดียวกันโดยไม่คำนึงถึงโซนเวลาที่กำลังถูกสังเกตอยู่.

DATE-TIME พร้อมเวลา UTC

วันที่พร้อมเวลา UTC หรือเวลาสัมบูรณ์ จะระบุด้วยอักษร Z ตัวพิมพ์ใหญ่ของละติน ซึ่งเป็นตัวบ่งชี้ UTC ที่ต่อท้ายค่เวลา ตัวอย่างเช่น ข้อความต่อไปนี้แสดงวันที่ 19 มกราคม 1998 เวลา 07:00 UTC: DTSTART:19980119T070000Z โปรดทราบว่า Aspose iCalendar ละเว้นส่วนต่อท้ายรูปแบบ UTC Z และถือเวลาเป็นเวลาในพื้นที่ มาตรฐาน 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 เท่านั้น.