Java毫秒时间,每小时分辨率

Nov*_*ser 0 java time timezone utc localtime

我如何在 UTC 中获得 java 时间毫秒而忽略分钟和秒。

例如:如果是 2019 年 10 月 10 日凌晨 1:10:59,它应该得到Time2019 年 10 月 10 日凌晨 1 点的或毫秒。

Ole*_*.V. 5

概括:

Instant
.now()
.truncatedTo( 
    ChronoUnit.HOURS 
)
.toEpochMilli()
Run Code Online (Sandbox Code Playgroud)

1570600800000


java.time,现代 Java 日期和时间 API 提供了您需要的方法:许多类都有一个truncatedTo方法可以满足您的需求。

    Instant now = Instant.now();
    System.out.println("Rough milliseconds:                        " + now.toEpochMilli());
    Instant currentWholeHour = now.truncatedTo(ChronoUnit.HOURS);
    System.out.println("Milliseconds ignoring minutes and seconds: "
            + currentWholeHour.toEpochMilli());
Run Code Online (Sandbox Code Playgroud)

刚刚运行此代码段时,输出为:

Rough milliseconds:                        1570604053787
Milliseconds ignoring minutes and seconds: 1570600800000
Run Code Online (Sandbox Code Playgroud)

我很清楚第一行是你要求不要的。我只包括它给你看区别。

截断发生在UTC。如果您所在的时区与 UTC 的偏移量不是整数小时,则结果可能与您预期的不一样。此类时区的示例包括亚洲/加德满都、美洲/圣约翰以及澳大利亚/Lord_Howe。

链接: Oracle 教程:日期时间