如何获取当前时间节点前后几天的时间

背景:今天做图表的时候,想展示近七天每天的数据,想了想,没有啥好的方法,有懒得一天一天自己入参,就写了个工具类,直接循环获取,然后入参,最后自己封装了一下,丢到前端。

package org.litluecat.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 获取前几天时间或后几天时间工具类
 * @author Litluecat
 */
public class BeforeOrAfterDateUtils {

    /**
     * 获取时间参数前几天的时间
     * @param date 时间节点
     * @param beforeDay 距离时间节点天数
     * @return 返回最终时间节点
     * @throws ParseException
     */
    public static Date getBeforeDate(Date date, int beforeDay) throws ParseException {
        long ms = date.getTime() - beforeDay*24*3600*1000L;
        Date prevDay = new Date(ms);
        return prevDay;
    }

    /**
     * 获取时间参数前几天的时间
     * @param sdf 时间节点格式
     * @param date 时间节点
     * @param beforeDay 距离时间节点天数
     * @return 返回最终时间节点
     * @throws ParseException
     */
    public static String getBeforeDate(SimpleDateFormat sdf,String date, int beforeDay) throws ParseException {
        Date day = sdf.parse(date);
        long ms = day.getTime() - beforeDay*24*3600*1000L;
        Date prevDay = new Date(ms);
        return sdf.format(prevDay);
    }

    /**
     * 获取时间参数后几天的时间
     * @param date 时间节点
     * @param afterDay 距离时间节点天数
     * @return 返回最终时间节点
     * @throws ParseException
     */
    public static Date getAfterDate(Date date, int afterDay) throws ParseException {
        long ms = date.getTime() + afterDay*24*3600*1000L;
        Date prevDay = new Date(ms);
        return prevDay;
    }

    /**
     * 获取时间参数后几天的时间
     * @param sdf 时间节点格式
     * @param date 时间节点
     * @param afterDay 距离时间节点天数
     * @return 返回最终时间节点
     * @throws ParseException
     */
    public static String getAfterDate(SimpleDateFormat sdf,String date, int afterDay) throws ParseException {
        Date day = sdf.parse(date);
        long ms = day.getTime() + afterDay*24*3600*1000L;
        Date prevDay = new Date(ms);
        return sdf.format(prevDay);
    }

}

你可能感兴趣的:(java,java,spring)