如何获得下一个小时的毫秒数

Sub*_*san 5 java datetime date

我想要几毫秒到下一个小时.例如

现在时间 - > 10:01:23 2018年10月2日,想要剩余毫秒到2018年10月2日11:00:00.

现在时间是动态的,可以是2018年10月2日23:56:56,下一个小时是2018年10月3日00:00:00.

Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(startDate.getMillis());
    calendar.add(Calendar.HOUR, 1);
Run Code Online (Sandbox Code Playgroud)

我正在尝试这样的事情,但是它在startDate上增加了1个小时.但我想要下一个小时.

欢迎任何帮助.

孙兴斌*_*孙兴斌 9

从Java8开始,您可以使用java.time.LocalDateTime:

    LocalDateTime start = LocalDateTime.now();
    // Hour + 1, set Minute and Second to 00
    LocalDateTime end = start.plusHours(1).truncatedTo(ChronoUnit.HOURS);

    // Get Duration
    Duration duration = Duration.between(start, end);
    long millis = duration.toMillis();
Run Code Online (Sandbox Code Playgroud)

刚刚运行(2018-10-02T18:44:48.943070北京时间)我得到911 056毫秒.

  • 出于品味的考虑,我可能会写“.truncatedTo(ChronoUnit.HOURS)”,而不是“.withMinute(0).withSecond(0)”。它还将消除毫秒和微秒,因此会更加准确。 (2认同)