Java对时间进行操作的工具类

一、时间格式化

	/**
     * 时间格式化<br/>
     * yyyy-MM-dd HH:mm:ss
     * @param date
     * @return
     */
    public static String DateFormat(Date date) {
        return DateFormat(date, "yyyy-MM-dd HH:mm:ss");
    }

    /**
     * 时间格式化<br/>
     * 默认:yyyy-MM-dd HH:mm:ss<br/>
     * yyyy-M-d HH:mm:ss<br/>
     * yyyy年 M月 d日  H时 m分 s秒
     */
    public static String DateFormat(Date date, String format) {
        return new SimpleDateFormat(format).format(date);
    }

二、时间计算(时间加减)

	/**
     * 时间计算<br/>
     * Calendar.DATE 天数<br/>
     * Calendar.MONTH 月数<br/>
     * Calendar.YEAR 年数<br/>
     *
     * @param unit 加减单位(年、月、日)
     * @param i    加减数量(负数代表减,正数代表加)
     */
    public static Date Calculation(int unit, int i) {
        Date date = new Date();
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);//设置起时间
        cal.add(unit, i);
        return cal.getTime();
    }

三、两个时间之间的差值

    /**
     * 时间计算,传输时间 和 当前时间 时间差值
     * @param date 时间
     * @param yearUnit 年份单位 例如:岁,年
     * @return
     */
    public static String TimeLeft(Date date, String yearUnit) {
        //Date 转 LocalDate
        Period between = TimeLeft(date);
        if (between.getYears() != 0) {
            return Math.abs(between.getYears()) + yearUnit;
        } else if (between.getMonths() != 0) {
            return Math.abs(between.getMonths()) + "月";
        } else if (between.getDays() != 0) {
            return Math.abs(between.getDays()) + "天";
        } else {
            return "0天";
        }
    }

    /**
     * 时间与当前时间的相差年月天日
     * @param date
     * @return
     */
    public static Period TimeLeft(Date date) {
        LocalDate ageDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        Period between = Period.between(ageDate, LocalDate.now());
        log.info("相差: {} 年 {} 月 {} 日", Math.abs(between.getYears()), Math.abs(between.getMonths()), Math.abs(between.getDays()));
        return between;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值