gpt4 book ai didi

c# - 如何将 DateTime 转换为自 1970 年以来的秒数?

转载 作者:IT王子 更新时间:2023-10-29 03:34:49 26 4
gpt4 key购买 nike

我正在尝试将 C# DateTime 变量转换为 Unix 时间,即自 1970 年 1 月 1 日以来的秒数。看起来 DateTime 实际上是作为自 0001 年 1 月 1 日以来的“滴答”数实现的。

我目前的想法是像这样从 DateTime 中减去 1970 年 1 月 1 日:

TimeSpan span= DateTime.Now.Subtract(new DateTime(1970,1,1,0,0,0));
return span.TotalSeconds;

有没有更好的办法?

最佳答案

基本上就是这样。这些是我用来与 Unix 纪元时间相互转换的方法:

public static DateTime ConvertFromUnixTimestamp(double timestamp)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
return origin.AddSeconds(timestamp);
}

public static double ConvertToUnixTimestamp(DateTime date)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
TimeSpan diff = date.ToUniversalTime() - origin;
return Math.Floor(diff.TotalSeconds);
}

更新:从 .Net Core 2.1 和 .Net Standard 2.1 开始,可以从静态 DateTime.UnixEpoch 获得等于 Unix Epoch 的 DateTime。

关于c# - 如何将 DateTime 转换为自 1970 年以来的秒数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3354893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com