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





0/5 (0投票)
关于将 .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.MinValue
:https://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日:初始版本