2011-08-09 47 views

回答

5

我建議通過添加適當的秒數來調整Unix紀元時間(自1970年以來)的秒數,而不是顛倒一年。我不積極,但我的直覺告訴我,在某些情況下,碰撞一年本身是錯誤的(閏年和對日曆的小調整等)。

如果您需要自2001年1月1日以來增加秒,秒數爲+978307200。如果你需要毫秒,只需乘以1000.

作爲一個例子,我有一些代碼需要檢測自紀元以來的秒數和Unix紀元日期,並將它們轉換成Java日期,這些日期從Unix紀元開始到毫秒構造函數:

// Earlier than 1985 in Unix, must be Apple 
if(date < 473410800) { 
    m.date = new Date((date + 978307200L) * 1000); 
} else { 
    m.date = new Date(date * 1000); 
} 
+1

我們剛剛跨入門檻日期在可可日期比473410800越大,所以在這段代碼的檢查是不是好。如果您需要弄清楚您擁有哪種類型的號碼,我會調整我以前的答案,以考慮您正在使用的日期範圍。 雖然轉換本身仍然正確。 – Kelly

+0

感謝您回來後四年更正這個凱利!棒極了! – eric