java实现距离指定时间还有多少天

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dengmengxin/article/details/84624200
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
 
public class 距离指定时间还有多少天 {
    /**
     * 默认时区为北京时间
     */
    public static TimeZone DEFAULT_SERVER_TIME_ZONE = TimeZone.getTimeZone("GMT+08:00");
 
    public static void main(String[] args) {
        // 输入指定日期
        long timeMillis = getTimeInMillis(2019, 2, 5, 0, 0, 0);
        Calendar current = Calendar.getInstance(TimeZone.getDefault());
        current.setTimeInMillis(System.currentTimeMillis());
 
        Calendar date = Calendar.getInstance(TimeZone.getDefault());
        date.setTimeInMillis(timeMillis);
        long time = date.getTimeInMillis() - current.getTimeInMillis();
        // 天
        int day = Math.round(time / 1000 / 60 / 60 / 24);
        // 时
        int hour = Math.round(time / 1000 / 60 / 60 % 24);
        // 分
        int minute = Math.round(time / 1000 / 60 % 60);
        // 秒
        int second = Math.round(time / 1000 % 60);
 
        System.out.println(String.format("%s天%s时%s分%s秒", day, hour, minute, second));
    }
 
    /**
     * 设置年、月、日、时、分、秒,并转换成时间戳
     *
     * @param year
     *            年
     * @param month
     *            月
     * @param day
     *            日
     * @param hours
     *            时
     * @param minutes
     *            钟
     * @param seconds
     *            秒
     */
    public static long getTimeInMillis(int year, int month, int day, int hours, int minutes, int seconds) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeZone(DEFAULT_SERVER_TIME_ZONE);
        calendar.set(year, month - 1, day, hours, minutes, seconds);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
        format.setTimeZone(DEFAULT_SERVER_TIME_ZONE);
        try {
            return format.parse(format.format(calendar.getTime())).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
            return 0;
        }
    }
 
}

猜你喜欢

转载自blog.csdn.net/dengmengxin/article/details/84624200