我有一個從Unix紀元時間轉換爲.NET DateTime值的函數:我如何從UNIX時代轉換時間並在C#中考慮夏令時?
public static DateTime FromUnixEpochTime(double unixTime)
{
DateTime d = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return d.AddSeconds(unixTime);
}
我在哪裏(UK)的時鐘走1小時着夏天的時間。
在Python中,我使用time.time()
(爲了爭辯,現在時間是17:15:00)得到當地的大紀元時間,這給我的值爲1286122500
。
如果我使用time.localtime()
轉換這回人類可讀的時候將其轉換回17:15,因爲我期望的那樣。
如何轉換Unix紀元時間回.NET DateTime
價值,佔本地夏令時。我上面的功能將1286122500
轉換回16:15,這對我的地理位置不正確。
+1,這裏不需要更復雜。 – 2010-10-03 17:10:02
啊哈...我在DateTime構造函數中試過'DateTimeKind.Local',不敢相信我錯過了'.ToLocalTime()'方法。 – Kev 2010-10-03 17:23:45
古老但很好。謝謝。 – kmarks2 2012-03-16 12:29:47