ทำไมไม่ใช้เพียงรอบการเดินทาง ( "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);
}
}