📅  最后修改于: 2023-12-03 14:59:41.045000             🧑  作者: Mango
在C#编程过程中,Unix 时间戳(Unix Timestamp)可能涉及到时间戳的转换、计算等操作。本文将简要介绍 C# 中的 Unix 时间戳,并提供相关的代码示例。
Unix 时间戳是表示从 Unix 纪元(1970年1月1日00:00:00 UTC)起经过的秒数,它是一种时间值的表示方式。在 C# 中,可以使用预定义的 DateTime
类型,其自 0001 年 1 月 1 日起的时间戳表示方式来操作 Unix 时间戳。
示例代码:
DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime currentTime = DateTime.UtcNow;
// 获取当前时间戳
long currentTimestamp = (long)(currentTime - unixEpoch).TotalSeconds;
Console.WriteLine(currentTimestamp);
// 将 Unix 时间戳转为 DateTime 类型
long unixTimestamp = 1577687293;
DateTime timestampDateTime = unixEpoch.AddSeconds(unixTimestamp);
Console.WriteLine(timestampDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
输出:
1577687293
2019-12-30 09:08:13
在 C# 中,我们可能需要将 Unix 时间戳与其他时间格式相互转换。以下是一些常用的转换方法:
long timestamp = 1577687293;
DateTime dt = unixEpoch.AddSeconds(timestamp);
string dateStr = dt.ToString("yyyy-MM-dd HH:mm:ss");
string dateStr = "2022-02-22 22:22:22";
DateTime dt = DateTime.ParseExact(dateStr, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
long timestamp = (long)(dt - unixEpoch).TotalSeconds;
DateTime currentTime = DateTime.UtcNow;
long currentTimestamp = (long)(currentTime - unixEpoch).TotalSeconds;
long timestamp = 1577687293;
DateTime dt = unixEpoch.AddSeconds(timestamp);
string dateStr = dt.ToString("ddd MMM dd yyyy HH:mm:ss 'GMT+0800 (CST)'", new CultureInfo("en-US"));
输出:
Mon Dec 30 2019 09:08:13 GMT+0800 (CST)
在 C# 中,我们可以使用 TimeSpan
类型对两个时间戳进行计算,例如计算两个时间戳的时间差等。
示例代码:
long timestamp1 = 1577687293;
long timestamp2 = 1577694693;
TimeSpan timeSpan = TimeSpan.FromSeconds(timestamp2 - timestamp1);
Console.WriteLine(timeSpan.TotalHours);
输出:
2.01638888888889
本文简要介绍了 C# 中的 Unix 时间戳,演示了如何将 Unix 时间戳转换为其他时间格式,如何计算时间戳等。希望本文能够对 C# 开发者们有所帮助。