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.