ทำไมไม่ใช้เพียงรอบการเดินทาง ( "O", "o") รูปแบบ Specifier ?
ตัวระบุรูปแบบมาตรฐาน "O" หรือ "o" แสดงถึงสตริงรูปแบบวันที่และเวลาที่กำหนดเองโดยใช้รูปแบบที่เก็บรักษาข้อมูลโซนเวลาและส่งสตริงผลลัพธ์ที่สอดคล้องกับ ISO 8601 สำหรับค่า DateTime ตัวระบุรูปแบบนี้ได้รับการออกแบบมาเพื่อรักษาวันที่ และค่าเวลาพร้อมกับคุณสมบัติ DateTime.Kind ในข้อความ สตริงที่จัดรูปแบบสามารถแยกวิเคราะห์กลับได้โดยใช้เมธอด DateTime.Parse (String, IFormatProvider, DateTimeStyles) หรือ DateTime.ParseExact ถ้าพารามิเตอร์ styles ถูกตั้งค่าเป็น DateTimeStyles.RoundtripKind
ตัวระบุรูปแบบมาตรฐาน "O" หรือ "o" สอดคล้องกับ "yyyy" - "MM" - "dd'T'HH": "mm": "ss". "fffffffK" สำหรับค่า DateTime และ "yyyy" - "MM" - "dd'T'HH": "mm": "ss". "fffffffzzz" สตริงรูปแบบที่กำหนดเองสำหรับค่า DateTimeOffset ในสตริงนี้คู่ของเครื่องหมายคำพูดเดี่ยวที่คั่นอักขระแต่ละตัวเช่นยัติภังค์เครื่องหมายทวิภาคและตัวอักษร "T" บ่งชี้ว่าอักขระแต่ละตัวเป็นตัวอักษรที่ไม่สามารถเปลี่ยนแปลงได้ เครื่องหมายวรรคตอนไม่ปรากฏในสตริงเอาต์พุต
ตัวระบุรูปแบบมาตรฐาน O "หรือ" o "(และ" yyyy "-" MM "-" dd'T'HH ":" mm ":" ss "." fffffffK "รูปแบบที่กำหนดเอง) ใช้ประโยชน์จากสามวิธี ISO 8601 นั้นแสดงถึงข้อมูลโซนเวลาเพื่อรักษาคุณสมบัติ Kind ของค่า DateTime:
public class Example
{
   public static void Main()
   {
       DateTime dat = new DateTime(2009, 6, 15, 13, 45, 30, 
                                   DateTimeKind.Unspecified);
       Console.WriteLine("{0} ({1}) --> {0:O}", dat, dat.Kind); 
       DateTime uDat = new DateTime(2009, 6, 15, 13, 45, 30, 
                                    DateTimeKind.Utc);
       Console.WriteLine("{0} ({1}) --> {0:O}", uDat, uDat.Kind);
       DateTime lDat = new DateTime(2009, 6, 15, 13, 45, 30, 
                                    DateTimeKind.Local);
       Console.WriteLine("{0} ({1}) --> {0:O}\n", lDat, lDat.Kind);
       DateTimeOffset dto = new DateTimeOffset(lDat);
       Console.WriteLine("{0} --> {0:O}", dto);
   }
}