下面的函数应该将以下 UNIX 时间转换为 C# DateTime 对象:
1362506086000
上面的时间应该代表2012 年 3 月 5 日下午 12:54。
但是,每次我通过下面的函数运行它时,它都会更改为5:54 PM:
2013年3月5日下午5:54:46
static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
static readonly double MaxUnixSeconds = (DateTime.MaxValue - UnixEpoch).TotalSeconds;
public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
{
return unixTimeStamp > MaxUnixSeconds
? UnixEpoch.AddMilliseconds(unixTimeStamp)
: UnixEpoch.AddSeconds(unixTimeStamp);
}
如何才能将 Unix 时间正确表示为 12:54 而不是 5:54?
最佳答案
这听起来像是时区问题。确保用于生成 Unix 时间的时区与 Windows 系统上的时区相同,或进行相应转换。
关于c# - Unix 日期时间差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15231582/