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

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


บทนำ

เมธอด DateTimeOffset.ToFileTime() ใน C# ใช้แปลงค่าของอินสแตนซ์ DateTimeOffset ปัจจุบันให้เป็น Windows file time คืนค่าเป็น Int64 (long) ที่แสดงจำนวน 100-nanosecond intervals นับจาก 1 มกราคม 1601 (Windows epoch)

ไวยากรณ์ (Syntax)

public long ToFileTime ();

ตัวอย่างที่ 1: การแปลง DateTimeOffset ที่ระบุ

using System;

public class Demo 
{
    public static void Main()
    {
        DateTimeOffset dateTimeOffset1 = new DateTimeOffset(2019, 11, 10, 6, 20, 10, new TimeSpan(-5, 0, 0));
        Console.WriteLine("DateTimeOffset = {0}", dateTimeOffset1);
        
        int hash = dateTimeOffset1.GetHashCode();
        long res = dateTimeOffset1.ToFileTime();
        
        Console.WriteLine("DateTimeOffset HashCode = {0}", hash);
        Console.WriteLine("Windows file time = {0}", res);
    }
}

ผลลัพธ์

DateTimeOffset = 11/10/2019 6:20:10 AM -05:00
DateTimeOffset HashCode = -92293937
Windows file time = 132178584100000000

ตัวอย่างที่ 2: การแปลงเวลาปัจจุบัน

using System;

public class Demo 
{
    public static void Main()
    {
        DateTimeOffset dateTimeOffset1 = DateTimeOffset.Now;
        Console.WriteLine("DateTimeOffset = {0}", dateTimeOffset1);
        
        long res = dateTimeOffset1.ToFileTime();
        Console.WriteLine("Windows file time = {0}", res);
    }
}

ผลลัพธ์

DateTimeOffset = 10/16/2019 11:16:47 AM +00:00
Windows file time = 132156982075593442

สรุป

Windows file time ใช้ในระบบไฟล์ NTFS และ Windows API ต่างๆ ค่าจะเป็นจำนวน ticks (100-nanosecond intervals) จาก 1 มกราคม 1601 UTC สามารถแปลงกลับได้ด้วย DateTimeOffset.FromFileTime() เหมาะสำหรับการทำงานกับไฟล์ระบบ Windows และการโต้ตอบกับ Windows API