c#获取时间戳的几种方式

发布于 2023-07-04  1112 次阅读



在 C# 中,你可以使用不同的方法来获取时间戳,下面是两种常用的方法:

  1. 使用 DateTime.NowTimeSpan
csharpCopy codeDateTime now = DateTime.Now;
TimeSpan timeSpan = now - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
long timestamp = (long)timeSpan.TotalSeconds;
Console.WriteLine(timestamp);

这种方法首先获取当前的 DateTime 对象,然后计算当前时间与 Unix 时间(1970年1月1日)之间的时间差,得到一个 TimeSpan 对象。最后,通过 TotalSeconds 属性获取时间差的总秒数,即时间戳。

  1. 使用 DateTimeOffsetToUnixTimeSeconds()
csharpCopy codeDateTimeOffset now = DateTimeOffset.UtcNow;
long timestamp = now.ToUnixTimeSeconds();
Console.WriteLine(timestamp);

这种方法使用 DateTimeOffset 对象来获取当前的时间,通过 ToUnixTimeSeconds() 方法将其转换为 Unix 时间戳。

需要注意的是,以上两种方法得到的时间戳都是以秒为单位的整数值。如果你需要以毫秒为单位的时间戳,可以将 TotalMillisecondsToUnixTimeMilliseconds() 属性用于第一种和第二种方法中的 TimeSpanDateTimeOffset 对象。

另外,这些方法获取的时间戳是基于当前的系统时间。如果你需要获取特定时间点的时间戳,可以将对应的时间点转换为 DateTimeDateTimeOffset 对象后使用上述方法进行计算。