我正在尝试以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 时间转换回 DateTime 对象,我使用以下命令:
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()
I get {11/2/2011 11:53:16 AM}
这很好。这是我运行代码的正确时间。我遇到的问题是当我尝试放置1320249196267
转换为unix时间转换器,例如this http://www.onlineconversion.com/unix_time.htm,它返回完全错误的时间。
另一个问题是我在东部时区。这返回了我所在时区的时间。这是不是DateTime
对象句柄还是我没有得到 GMT。