0
iPhone客戶端將Apple日期發送到Java服務器作爲Apple的Cocoa框架Epoch(自2001年起ms),並且當您轉換爲java日期(自1970年起) 1980年爲2011年,是否將30年加入可可日期將會轉換爲?或者有沒有其他方法可以用於此轉換?將Apple's Cocoa框架時代(reference_date)轉換爲Java日期
iPhone客戶端將Apple日期發送到Java服務器作爲Apple的Cocoa框架Epoch(自2001年起ms),並且當您轉換爲java日期(自1970年起) 1980年爲2011年,是否將30年加入可可日期將會轉換爲?或者有沒有其他方法可以用於此轉換?將Apple's Cocoa框架時代(reference_date)轉換爲Java日期
我建議通過添加適當的秒數來調整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);
}
我們剛剛跨入門檻日期在可可日期比473410800越大,所以在這段代碼的檢查是不是好。如果您需要弄清楚您擁有哪種類型的號碼,我會調整我以前的答案,以考慮您正在使用的日期範圍。 雖然轉換本身仍然正確。 – Kelly
感謝您回來後四年更正這個凱利!棒極了! – eric