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()));
}
}
测试结果: