下面的函数应该以下UNIX时间转换为C#DateTime对象:Unix的日期时间差异
的时间以上应该代表2012年3月5日下午12点54。
然而,每次我通过下面的函数运行它,它改变下午5时54:
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?
你可能需要查找的功能转换GMT(或者是UTC可好?)到本地时间。也许这将有助于:语言可能不同,但所需的功能通常在不同语言中有相同或非常相似的名字。 –
2013-03-05 18:43:47
好问题;我不知道他们给我发了什么时区。我只知道它应该是12:54,当我把它插入到我的函数中时,它会出来5:45 ... – user1477388 2013-03-05 19:01:21
@ user1477388:你应该总是问自己什么时区是日期或时间,在做任何事情之前它。 – 2013-03-05 19:28:28