假设我有一个System.currentTimeMillis()
值作为long
号。
我如何修改它以匹配最后一分钟开始时的瞬间?即零秒和毫秒。
我宁愿不使用魔术常数。使用java.time
很好。
最佳答案
我同意建议使用java.time
的答案,但是可以像在这些答案中一样简单地完成它:
long lastWholeMinute = Instant.now().truncatedTo(ChronoUnit.MINUTES).toEpochMilli();
这只是给
1517940060000
。当然,如果保留Instant
对象对您有意义,那么一定要这样做,而不是转换为裸露的原始long
。如果
long
的值是您存储的值而不是现在的时间,则它非常相似: long someEpochMilliValue = 1_517_941_234_567L;
long lastWholeMinute = Instant.ofEpochMilli(someEpochMilliValue)
.truncatedTo(ChronoUnit.MINUTES)
.toEpochMilli();