C# 获取 Unix 时间戳

Minahil Noor 2023年10月12日
  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