假设我有一个 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();
关于java - 从 System.currentTimeMillis 值中去除秒和毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48648378/