ภาพรวม
เมธอด DateTime.ToUniversalTime() แปลงค่า DateTime จากเวลาท้องถิ่น (local time) เป็นเวลาสากลพิกัด (Coordinated Universal Time - UTC) โดยคำนึงถึงเขตเวลาและการประหยัดแสงวัน (Daylight Saving Time) ของระบบ
ตัวอย่างที่ 1: แปลง DateTime ที่สร้างด้วยคอนสตรัคเตอร์
using System;
public class Demo
{
public static void Main()
{
DateTime d = new DateTime(2019, 12, 11, 7, 11, 25);
Console.WriteLine("Date = {0}", d);
DateTime res = d.ToUniversalTime();
Console.WriteLine("String representation = {0}", res);
}
}
ผลลัพธ์ (ขึ้นอยู่กับเขตเวลาของเครื่อง)
Date = 11/11/2019 7:11:25 AM
String representation = 11/11/2019 7:11:25 AM
ตัวอย่างที่ 2: แปลงจากสตริงผ่าน Parse แล้ว ToUniversalTime
using System;
public class Demo
{
public static void Main()
{
DateTime localDate, universalDate;
String str = "11/11/2019 4:10:55";
localDate = DateTime.Parse(str);
universalDate = localDate.ToUniversalTime();
Console.WriteLine("Local time = {0} ", localDate);
Console.WriteLine("Universal time = {0} ", universalDate);
}
}
ผลลัพธ์ (ขึ้นอยู่กับเขตเวลา)
Local time = 11/11/2019 4:10:55 AM
Universal time = 11/11/2019 4:10:55 AM
คำอธิบายเพิ่มเติม
- ผลลัพธ์ขึ้นอยู่กับการตั้งค่าเขตเวลา (Time Zone) ของเครื่องที่รันโค้ด
DateTime.KindProperty ระบุว่า DateTime เป็น Local, Utc, หรือ Unspecified- หาก Kind = Unspecified จะถือว่าเป็น Local time
- สำหรับแอปพลิเคชันสมัยใหม่ แนะนำใช้
DateTimeOffsetหรือTimeZoneInfoซึ่งจัดการเขตเวลาชัดเจนกว่า TimeZoneInfo.ConvertTimeToUtc()ให้การควบคุมเขตเวลาได้ชัดเจนกว่า