Java指定时间差和时间段的获取

在项目中涉及到了一个时间差和时间段的获取,在此记录,仅供参考。

package util;

import java.sql.Timestamp;
import java.util.TimeZone;

public class Time {
    //此时时间如果在晚上八点后就返回到明晚八点的时间差,如果未到八点就返回到今晚八点的时间差

    public static long getTimeDiff() {
        long current=System.currentTimeMillis();//当前时间毫秒数
        long zero=current/(1000*3600*24)*(1000*3600*24)- TimeZone.getDefault().getRawOffset();//今天零点零分零秒的毫秒数
        long todayEighteen=zero+20*60*60*1000-1;//今天19点59分59秒的毫秒数
        long tomorrowEighteen =todayEighteen + 24*60*60*1000-1 ; //明天19点59分59秒的毫秒数
        if(current>todayEighteen){
            Long different = tomorrowEighteen - current;
            return different;
        }else{
            Long different = todayEighteen -current;
            return different;
        }
    }
    //获取当天早上八点到晚上八点
    public static Timestamp[] getTimePeriod(){
        long current=System.currentTimeMillis();//当前时间毫秒数
        long zero=current/(1000*3600*24)*(1000*3600*24)- TimeZone.getDefault().getRawOffset();//今天零点零分零秒的毫秒数
        long  morning= zero+8*60*60*1000-1;  //昨天20点00分01的毫秒数
        long evening=zero+20*60*60*1000-1;//今天19点59分59秒的毫秒数

        Timestamp [] timeList = new Timestamp[2];
        timeList[0]=new Timestamp(morning);
        timeList[1]=new Timestamp(evening);
        return timeList;
    }
}

猜你喜欢

转载自blog.csdn.net/m0_37888031/article/details/80216033