65.9K
CodeProject 正在变化。 阅读更多。
Home

.NET DateTime 与 Unix 时间戳的相互转换

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2015年7月7日

CPOL
viewsIcon

7062

关于将 .NET DateTime 转换为 Unix 双精度时间戳以及反向转换的技巧 - 在 .NET 中

差异 (简述)

这两种格式(Windows 和 Unix)的主要差异在于,Unix 从 1970 年 1 月 1 日开始计算秒数,而 Windows 将其起始时间视为 0001 年 1 月 1 日。

你可以使用 DateTime.MinValue 检查 DateTime

Unix 时间戳:https://en.wikipedia.org/wiki/Unix_time

DateTime.MinValuehttps://msdn.microsoft.com/en-us/library/system.datetime.minvalue(v=vs.110).aspx

这些函数将 .NET DateTime 值转换为 Unix Double,反之亦然:

public static DateTime Covert(double unixTime)
{
    System.DateTime result = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
    return result.AddSeconds(unixTime).ToLocalTime();
}

public static long Covert(DateTime dotNetTime)
{
    var result = (dotNetTime - new DateTime(1970, 1, 1).ToLocalTime()).TotalSeconds;
    return (long)result;
}

历史

  • 2015年7月7日:初始版本
© . All rights reserved.