【发布时间】:2011-12-20 11:19:17
【问题描述】:
我正在尝试以 unix 时间获取 GMT。我使用以下代码:
public static long GetGMTInMS()
{
var unixTime = DateTime.Now.ToUniversalTime() -
new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return (long)unixTime.TotalMilliseconds;
}
然后将 unix 时间转换回 DatTime 对象,我使用这个:
public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
{
System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
dtDateTime = dtDateTime.AddMilliseconds(unixTimeStamp).ToLocalTime();
return dtDateTime;
}
当我运行它时,GetGMTInMS() 1320249196267。当我将它传递给UnixTimeStampToDateTime() 时,我得到{11/2/2011 11:53:16 AM}
这很好。那是我运行代码的正确时间。我遇到的问题是,当我尝试将 1320249196267 放入 unix 时间转换器(例如 this)时,它返回的时间完全错误。
另一个问题是我在东部时区。这返回了我时区的时间。这是DateTime 对象处理的东西还是我没有得到格林威治标准时间。
【问题讨论】:
标签: c# .net datetime unix-timestamp