java获取指定时间的前后第n天

工作中有时候会出现一些业务 让你获取当前系统时间的第n天时间,或者是给一个指定的时间,获取这个指定时间之前第7天或者之后第7天

代码如下(以七天为实例):

    /**
     * 获取指定时间的前后指定天数的时间点
     *
     * @param date   需要加减时间的日期
     * @param amount 加减的时间(毫秒)
     * @return 加减对应时间后的日期
     * 七天:(7 * 24 * 60 * 60 * 1000)
     * 指定时间之前 为负数  指定时间之后为正数
     */
    private Date subtractTime(Date date, int amount) {
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String strTime = sdf.format(date.getTime() + amount);
            Date time = sdf.parse(strTime);
            return time;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String endTime = sdf.format(new Date());
        Date date = this.subtractTime(new Date(), -(7 * 24 * 60 * 60 * 1000));
        String startTime = sdf.format(date);
        System.out.println(startTime + "  --  " + endTime);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值