C# 獲取 Unix 時間戳

Minahil Noor 2023年1月30日 2020年6月9日
  1. C# 使用 DateTime.Now.Subtract().TotalSeconds 方法獲取 Unix 時間戳
  2. C# 使用 DateTimeOffset.Now.ToUnixTimeSeconds() 方法獲取 Unix Timestamp
  3. C# 使用 TimeSpan 結構方法獲取 Unix 時間戳
C# 獲取 Unix 時間戳

Unix 時間戳主要用於 Unix 作業系統。但這對所有作業系統都有用,因為它代表了所有時區的時間。Unix 的時間戳記以秒為單位。Unix 紀元始於 1970 年 1 月 1 日。因此,Unix Timestamp 是特定日期與 Unix 紀元之間的秒數的差異。

在 C# 中,有多種獲取 Unix 時間戳的方法。在本文中,我們將重點來介紹這些方法。

C# 使用 DateTime.Now.Subtract().TotalSeconds 方法獲取 Unix 時間戳

DateTime 類用於獲取日期和時間。DateTime.Now 告知當前日期和時間。Subtract() 方法可以找到當前日期和 Unix 紀元之間的差異。然後,TotalSeconds 屬性將結果日期和時間轉換為秒。

使用此方法的正確語法如下:

DateTime.Now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
//1970, 1, 1 is the Unix epoch

示例程式碼:

using System;

public class UnixTimestamp
{
    public static void Main()
    {
        
        Int32 unixTimestamp = (Int32)(DateTime.Now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
        Console.WriteLine("The Unix Timestamp is {0}.", unixTimestamp);
    }
}

輸出:

The Unix Timestamp is 1586782314.

C# 使用 DateTimeOffset.Now.ToUnixTimeSeconds() 方法獲取 Unix Timestamp

方法 DateTimeOffset.Now.ToUnixTimeSeconds() 是一種預定義的方法。它以秒為單位計算 Unix timestamp。方法中已經定義了 Unix epoch 值,因此,我們不需要將其作為引數傳遞。

使用此方法的正確語法如下:

DateTimeOffset.Now.ToUnixTimeSeconds();

示例程式碼:

using System;

public class UnixTimestamp
{
    public static void Main()
    {
        var unixTimestamp = DateTimeOffset.Now.ToUnixTimeSeconds();
        Console.WriteLine("The Unix Timestamp is {0}.", unixTimestamp);
    }
}

輸出:

The Unix Timestamp is 1586782273.

C# 使用 TimeSpan 結構方法獲取 Unix 時間戳

在 C# 中,TimeSpan 是一種結構,用於說明時間間隔。它的屬性 Ticks 用於表示時間間隔值。它可以用來查詢 Unix Timestamp

使用此結構的正確語法如下:

//Creating First Time Interval
TimeSpan epochTicks = new TimeSpan(new DateTime(1970, 1, 1).Ticks);
//Creating Second Time Interval and Substracting its Value from the First One
TimeSpan unixTicks = new TimeSpan(DateTime.Now.Ticks) - epochTicks;
//Converting time interval to seconds to represent Unix Timestamp
Int32 unixTimestamp = (Int32)unixTicks.TotalSeconds;

示例程式碼:

using System;

public class UnixTimestamp
{
    public static void Main()
    {
          TimeSpan epochTicks = new TimeSpan(new DateTime(1970, 1, 1).Ticks);
          TimeSpan unixTicks = new TimeSpan(DateTime.Now.Ticks) - epochTicks;
          Int32 unixTimestamp = (Int32)unixTicks.TotalSeconds;
          Console.WriteLine("The Unix Timestamp is {0}.", unixTimestamp);
    }
}

輸出:

The Unix Timestamp is 1586782432.

相關文章 - Csharp DateTime