java - 从 System.currentTimeMillis 值中去除秒和毫秒

标签 java time

假设我有一个 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/

相关文章:

java - 在Java中,如何将字符串的第一个(数字)字符转换为整数?

java - Camel 消息自动过期

python - 正确使用 utc 时间戳和本地日期时间

python - 如何扩展 Python 识别的时区列表?

mysql - 来自 Mysql SELECT 查询的日期格式

java - 使用 ThreadLocals 的 Akka 和 Java 库

Java,将字符串数组作为方法参数传递的最有效方法

Perl 商店中的 Java 开发 : How to select the right tool?

go - 函数中的秒操作

javascript 解析时间(分钟 :seconds) from milliseconds