出了什麼問題?我假設如果我從1980年1月1日0:0:0減去1ms,那麼我得到了1979年。但是我必須爲此減去約500ms以上。請給我一個提示。減1ms會導致意外行爲
val cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
cal.set(1980, 0, 1, 0, 0, 0)
val date = new Date
date.setTime(cal.getTimeInMillis()) // <- 1980 Jan 01 0:0:0
date.setTime(cal.getTimeInMillis() - 1) // <- 1980 Jan 01 0:0:0 too !!!
已更新。
的解決方案是
val cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
cal.setTimeInMillis(0)
cal.set(1980, 0, 1, 0, 0, 0)
只是一個猜測,但也許內部日曆輪到秒? – Aaron
嘗試在第一個'setTime()'調用後打印'date'內容。也許年,月,日,小時,分和秒是你設定的值,但不是毫秒。 –
這有點令人困惑。我不想使用尤達時間或另一個第三部分庫。我需要將年,月,日轉換爲毫秒,然後獲取當天的最後毫秒。我想爲此找到正確的解決方案。不幸的是,javadoc對這種情況保持沉默。 – Ezhik