Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด DateTimeOffset.ToOffset ใน C# พร้อมตัวอย่าง


บทนำ

เมธอด DateTimeOffset.ToOffset() ใน C# ใช้แปลงค่าของอินสแตนซ์ DateTimeOffset ปัจจุบันให้เป็นวันที่และเวลาที่ระบุโดยค่า offset ใหม่ โดยเวลา UTC จะคงที่ แต่การแสดงผลในเวลาท้องถิ่นและ offset จะเปลี่ยนไป

ไวยากรณ์ (Syntax)

public DateTimeOffset ToOffset (TimeSpan val);

โดยที่ val คือค่า offset ใหม่ที่ต้องการแปลง (TimeSpan)

ตัวอย่างที่ 1: การเปลี่ยนจาก -05:00 เป็น -09:59

using System;

public class Demo 
{
    public static void Main()
    {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 9, 10, 4, 20, 30, new TimeSpan(-5, 0, 0));
        Console.WriteLine("DateTimeOffset = {0}", dateTimeOffset);
        
        DateTimeOffset res = dateTimeOffset.ToOffset(new TimeSpan(-10, 1, 0));
        Console.WriteLine("DateTimeOffset (updated) = {0}", res);
    }
}

ผลลัพธ์

DateTimeOffset = 9/10/2019 4:20:30 AM -05:00
DateTimeOffset (updated) = 9/9/2019 11:21:30 PM -09:59

ตัวอย่างที่ 2: การเปลี่ยนจาก +05:00 เป็น +03:01

using System;

public class Demo 
{
    public static void Main()
    {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 9, 10, 4, 20, 30, new TimeSpan(5, 0, 0));
        Console.WriteLine("DateTimeOffset = {0}", dateTimeOffset);
        
        DateTimeOffset res = dateTimeOffset.ToOffset(new TimeSpan(3, 1, 0));
        Console.WriteLine("DateTimeOffset (updated) = {0}", res);
    }
}

ผลลัพธ์

DateTimeOffset = 9/10/2019 4:20:30 AM +05:00
DateTimeOffset (updated) = 9/10/2019 2:21:30 AM +03:01

สรุป

เมธอด ToOffset() เปลี่ยนการแสดงผลเวลาตามโซนเวลาใหม่ แต่เวลา UTC (Universal Time) จะคงที่ ไม่เปลี่ยนแปลง ใช้สำหรับการแสดงเวลาในโซนเวลาของผู้ใช้ หรือการแปลงเวลาระหว่างสำนักงานในประเทศต่างๆ