📌  相关文章
📜  c# 以秒为单位的 Unix 时间转换为日期时间 - C# (1)

📅  最后修改于: 2023-12-03 14:39:45.205000             🧑  作者: Mango

C# 以秒为单位的 Unix 时间转换为日期时间

在编程中,Unix 时间戳是一个重要的概念。它是从 1970 年 1 月 1 日 0 点 0 分 0 秒开始的秒数。在 C# 中,我们可以通过以下代码将 Unix 时间戳转换为日期时间:

public static DateTime ConvertUnixTime(long unixTime)
{
    DateTime start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    return start.AddSeconds(unixTime).ToLocalTime();
}

这个方法接受一个 long 类型的 Unix 时间戳作为参数,返回一个 DateTime 类型的日期时间。首先,我们创建了一个日期时间对象 start,它表示 Unix 时间戳的起始时间。由于 Unix 时间戳使用的是 UTC 时间,我们在创建 start 时将其 DateTimeKind 设置为 Utc。接下来,我们使用 AddSeconds 方法将 unixTime 添加到 start 中,得到一个新的日期时间对象。最后,我们使用 ToLocalTime 方法将其转换为本地时间。

使用方法如下:

long unixTime = 1612146661;
DateTime dateTime = ConvertUnixTime(unixTime);
Console.WriteLine(dateTime.ToString("yyyy-MM-dd HH:mm:ss"));

这将输出:

2021-02-01 11:51:01

上述示例中,我们将一个 Unix 时间戳 1612146661 转换为其对应的日期时间。我们使用 ToString 方法将其格式化为 "yyyy-MM-dd HH:mm:ss" 的日期时间字符串进行输出。

在实际开发中,我们经常需要将 Unix 时间戳转换为日期时间,用于展示、比较等操作。使用上面的代码片段,可以方便地进行转换。