วิธีการแปลง DateTime เป็นรูปแบบ RFC 3339
ใน C# ได้อย่างง่ายดาย
ในโลกดิจิทัลในปัจจุบัน แอปพลิเคชันมักจำเป็นต้องสื่อสารข้อมูลวันที่และเวลาอย่างมีประสิทธิภาพ มาตรฐานหนึ่งที่นิยมใช้คือรูปแบบวันที่-เวลาของ RFC 3339 โดยเฉพาะในเทคโนโลยีอย่าง Atom Syndication Format ดังนั้นเราจะสามารถแปลงโครงสร้าง DateTime
ใน C# เป็นรูปแบบเฉพาะนี้และในทางกลับกันได้อย่างไร?
ในบล็อกโพสต์นี้ เราจะพาคุณผ่านขั้นตอนในการ 解析และแปลง DateTime เป็นรูปแบบ RFC 3339 ทำให้การจัดการและแลกเปลี่ยนข้อมูลวันที่-เวลาในหลายแพลตฟอร์มนั้นง่ายขึ้น
เข้าใจรูปแบบ RFC 3339
RFC 3339 เป็นรูปแบบมาตรฐานที่ใช้เพื่อแทนวันที่และเวลาเป็นสตริง โครงสร้างพื้นฐานคือ:
yyyy-MM-dd'T'HH:mm:ss[.sss]Z
yyyy
: ปีMM
: เดือนdd
: วัน'T'
: ระบุจุดเริ่มต้นของเวลาHH
: ชั่วโมง (00 ถึง 23)mm
: นาทีss
: วินาที[.sss]
: มิลลิวินาที (ไม่จำเป็น)Z
: ระบุเวลาของ UTC
การนำการแปลงไปใช้ใน C#
ตอนนี้ มาดู การใช้งาน C# สำหรับการแปลง DateTime
ไปและจาก RFC 3339 กัน เราจะสร้างคลาสสแตติกชื่อ Rfc3339DateTime
ซึ่งรวมถึงวิธีการสำหรับการแปลงเหล่านี้
1. การกำหนดค่าคงที่และตัวแปร ที่จำเป็น
ก่อนอื่นให้กำหนดรูปแบบสตริงที่จำเป็นสำหรับ RFC 3339:
private static string[] formats = new string[0];
private const string format = "yyyy-MM-dd'T'HH:mm:ss.fffK";
2. การรับสตริงรูปแบบ RFC 3339
เราสามารถดึงรูปแบบที่กำหนดเองได้ง่าย ๆ โดยใช้พรอพเพอร์ตี้:
public static string Rfc3339DateTimeFormat
{
get
{
return format;
}
}
3. การ解析สตริง RFC 3339
เพื่อแปลงสตริงที่จัดรูปแบบตาม RFC 3339 กลับเป็นวัตถุ DateTime
เราสามารถใช้วิธี TryParse
:
public static DateTime Parse(string s)
{
if(s == null)
{
throw new ArgumentNullException("s");
}
DateTime result;
if (TryParse(s, out result))
{
return result;
}
else
{
throw new FormatException($"{s} ไม่ใช่ตัวแทนสตริงของวันที่และเวลา RFC 3339 ที่ถูกต้อง.");
}
}
4. การแปลง DateTime เป็นสตริง RFC 3339
เมื่อแปลง DateTime
เป็นสตริง RFC 3339 ให้แน่ใจว่า DateTime
อยู่ใน UTC:
public static string ToString(DateTime utcDateTime)
{
if (utcDateTime.Kind != DateTimeKind.Utc)
{
throw new ArgumentException("utcDateTime จะต้องอยู่ใน UTC.");
}
return utcDateTime.ToString(Rfc3339DateTimeFormat, DateTimeFormatInfo.InvariantInfo);
}
5. วิธีการ TryParse
วิธี TryParse
พยายามแปลงสตริง RFC 3339 เป็นวัตถุ DateTime
:
public static bool TryParse(string s, out DateTime result)
{
bool wasConverted = false;
result = DateTime.MinValue;
if (!string.IsNullOrEmpty(s))
{
DateTime parseResult;
if (DateTime.TryParseExact(s, Rfc3339DateTimePatterns, DateTimeFormatInfo.InvariantInfo, DateTimeStyles.AdjustToUniversal, out parseResult))
{
result = DateTime.SpecifyKind(parseResult, DateTimeKind.Utc);
wasConverted = true;
}
}
return wasConverted;
}
สรุป
โดยการทำตามตัวอย่างข้างต้น คุณสามารถ 解析และแปลง DateTime ไปและจาก รูปแบบวันที่-เวลาของ RFC 3339 ใน C# อย่างมีประสิทธิภาพ กระบวนการนี้มีความสำคัญสำหรับแอปพลิเคชันที่ต้องการความเข้ากันได้ของวันที่-เวลา เช่นเดียวกับการใช้งานฟีด RSS หรือทำงานกับ API
ด้วยความเข้าใจที่ได้รับจากคู่มือนี้ คุณจะสามารถจัดการการจัดรูปแบบ DateTime ในโปรเจ็กต์ของคุณได้อย่างมีประสิทธิภาพ ทำให้มั่นใจว่าปฏิบัติตามมาตรฐานอุตสาหกรรมและเพิ่มประสิทธิภาพของฟังก์ชันการทำงานของแอปพลิเคชันของคุณ
หากคุณมีคำถามหรือจำเป็นต้องชี้แจงเพิ่มเติม กรุณาทิ้งความคิดเห็นไว้ด้านล่าง!