C# 獲取 Unix 時間戳
Minahil Noor
2023年1月30日
2020年6月9日
-
C# 使用
DateTime.Now.Subtract().TotalSeconds
方法獲取 Unix 時間戳 -
C# 使用
DateTimeOffset.Now.ToUnixTimeSeconds()
方法獲取Unix Timestamp
-
C# 使用
TimeSpan
結構方法獲取 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.