出了什么问题?我假设如果我从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