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

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


บทนำ

เมธอด DateTimeOffset.ToUnixTimeMilliseconds() ใน C# ใช้คืนค่าจำนวนมิลลิวินาทีที่ผ่านไปตั้งแต่ Unix epoch (1 มกราคม 1970 เวลา 00:00:00.000 UTC) จนถึงเวลาที่แสดงโดยอินสแตนซ์ DateTimeOffset นี้

ไวยากรณ์ (Syntax)

public long ToUnixTimeMilliseconds ();

ตัวอย่างที่ 1: วันที่ในปี 2019 พร้อม offset +05:00

using System;

public class Demo 
{
    public static void Main()
    {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 9, 10, 4, 20, 10, new TimeSpan(5, 0, 0));
        Console.WriteLine("DateTimeOffset = {0}", dateTimeOffset);
        Console.WriteLine("Number of milliseconds: " + dateTimeOffset.ToUnixTimeMilliseconds());
        
        DateTimeOffset res = dateTimeOffset.ToOffset(new TimeSpan(-5, 0, 0));
        Console.WriteLine("\nDateTimeOffset (updated) = {0}", res);
        Console.WriteLine("Number of milliseconds: " + res.ToUnixTimeMilliseconds());
    }
}

ผลลัพธ์

DateTimeOffset = 9/10/2019 4:20:10 AM +05:00
Number of milliseconds: 1568071210000
DateTimeOffset (updated) = 9/9/2019 6:20:10 PM -05:00
Number of milliseconds: 1568071210000

ตัวอย่างที่ 2: วันที่ก่อน Unix epoch (ค่าลบ)

using System;

public class Demo 
{
    public static void Main()
    {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(1967, 11, 11, 6, 15, 45, new TimeSpan(3, 0, 0));
        Console.WriteLine("DateTimeOffset = {0}", dateTimeOffset);
        Console.WriteLine("Number of milliseconds: " + dateTimeOffset.ToUnixTimeMilliseconds());
        
        DateTimeOffset res = dateTimeOffset.ToOffset(new TimeSpan(-5, 0, 0));
        Console.WriteLine("\nDateTimeOffset (updated) = {0}", res);
        Console.WriteLine("Number of milliseconds: " + res.ToUnixTimeMilliseconds());
    }
}

ผลลัพธ์

DateTimeOffset = 11/11/1967 6:15:45 AM +03:00
Number of milliseconds: -67553055000
DateTimeOffset (updated) = 11/10/1967 10:15:45 PM -05:00
Number of milliseconds: -67553055000

สรุป

เมธอด ToUnixTimeMilliseconds() คืนค่า Unix timestamp ในหน่วยมิลลิวินาที ให้ความละเอียดสูงกว่าวินาที ใช้กันอย่างแพร่หลายใน API, logging, และระบบ real-time ค่าจะเท่ากันไม่ว่า offset จะเป็นเท่าใด ใช้ร่วมกับ DateTimeOffset.FromUnixTimeMilliseconds() เพื่อแปลงกลับ