JAVA8获取当前时间到第二天的秒数

  • Post author:
  • Post category:java


package com.test;

import org.junit.Test;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
import java.util.Date;

public class TestGetSeconds {
    //java8之前
    public void getTomorrowSeconds(){
        Date date=new Date();
        Calendar calendar=Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH,1);
        calendar.set(calendar.HOUR_OF_DAY,0);
        calendar.set(calendar.MINUTE,0);
        calendar.set(calendar.SECOND,0);
        calendar.set(calendar.MILLISECOND,0);
        int seconds= (int) ((calendar.getTime().getTime()-date.getTime())/1000);
        System.out.println(seconds);
        }
    //java8方式
    public int getTomorrowSeconds(Date currentTime){
        //从一个 Instant和区域ID获得 LocalDateTime实例
        LocalDateTime localDateTime=LocalDateTime.ofInstant(currentTime.toInstant(), ZoneId.systemDefault());
        //获取第第二天零点时刻的实例
        LocalDateTime toromorrowTime=LocalDateTime.ofInstant(currentTime.toInstant(), ZoneId.systemDefault())
                .plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
        //ChronoUnit日期枚举类,between方法计算两个时间对象之间的时间量
        long seconds = ChronoUnit.SECONDS.between(localDateTime, toromorrowTime);
        return (int)seconds;
    }

    @Test
    public void test(){
        getTomorrowSeconds();
        System.out.println(getTomorrowSeconds(new Date()));
    }
}

测试结果:

测试结果



版权声明:本文为qq_40691113原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。