บทนำ
เมธอด DateTimeOffset.ToLocalTime() ใน C# ใช้แปลงอินสแตนซ์ DateTimeOffset ปัจจุบันให้เป็น DateTimeOffset ที่แสดงเวลาท้องถิ่น (local time) ของระบบที่โค้ดกำลังทำงานอยู่
ไวยากรณ์ (Syntax)
public DateTimeOffset ToLocalTime ();
ตัวอย่างที่ 1: การแปลงเวลาปัจจุบันเป็นเวลาท้องถิ่น
using System;
public class Demo
{
public static void Main()
{
DateTimeOffset local;
DateTimeOffset dateTimeOffset = DateTimeOffset.Now;
Console.WriteLine("DateTimeOffset = {0}", dateTimeOffset);
local = dateTimeOffset.ToLocalTime();
Console.WriteLine("Local Time = " + local.ToString());
}
}
ผลลัพธ์
DateTimeOffset = 10/16/2019 11:20:35 AM +00:00 Local Time = 10/16/2019 11:20:35 AM +00:00
ตัวอย่างที่ 2: การแปลง DateTimeOffset ที่สร้างขึ้นมา
using System;
public class Demo
{
public static void Main()
{
DateTimeOffset local;
DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 10, 12, 6, 10, 20, TimeSpan.Zero);
Console.WriteLine("DateTimeOffset = {0}", dateTimeOffset);
local = dateTimeOffset.ToLocalTime();
Console.WriteLine("Local Time = " + local.ToString());
}
}
ผลลัพธ์
DateTimeOffset = 10/12/2019 6:10:20 AM +00:00 Local Time = 10/12/2019 6:10:20 AM +00:00
สรุป
เมธอด ToLocalTime() ใช้การตั้งค่าโซนเวลาของระบบปฏิบัติการในการกำหนด offset ใหม่ หาก DateTimeOffset ต้นทางอยู่ใน UTC แล้ว (offset = +00:00) และระบบก็อยู่ใน UTC ผลลัพธ์จะเหมือนเดิม ใช้สำหรับการแสดงเวลาให้ผู้ใช้ในโซนเวลาของตนเอง