自1970年1月1日以來,我有一個以微秒爲單位的時間戳。我試圖將其轉換爲以微秒爲單位丟失2小時
yyyy.MM.dd HH.mm.ss.ffffff
使用DateTime。 一個例子是:1337060932000000微秒 結果應該是2012年5月15日,7.48
但是我得到的結果是2個小時了。 可能是什麼原因?
自1970年1月1日以來,我有一個以微秒爲單位的時間戳。我試圖將其轉換爲以微秒爲單位丟失2小時
yyyy.MM.dd HH.mm.ss.ffffff
使用DateTime。 一個例子是:1337060932000000微秒 結果應該是2012年5月15日,7.48
但是我得到的結果是2個小時了。 可能是什麼原因?
感謝您的提示。 我解決了這個問題是這樣的:
int offset = 2;
DateTime d = new DateTime(1979,1,1, offset,0,0);
這個例子被簡化。偏移量在外部文件中指定,因此您可以輕鬆修改它以適應不同的時區。
由於Unix紀元是這個時區,你最可能得到一個UTC日期。請確保您所創建的基準日爲這樣:
var epoch = new DateTime(1970,1,1, 0,0,0, DateTimeKind.Utc);
一旦你有,你可以這樣做:
var localTime = epoch.AddMilliseconds(microseconds/1000).ToLocalTime();
如果microseconds
是你上面提供的價值,你得到的價值爲15/05/2012 07:48:52
這是你所期望的我想的。
雖然使用ToLocalTime
時要小心,因爲您只能確定這是您的軟件運行的計算機的本地時區,根據經驗,我可以告訴您,它並非總是您想的時區。
時區可能? – assylias
那可能是UTC! !你好嗎 – V4Vendetta
考慮當地時間偏移和夏令時。 –