java最常用到的时间工具类

public class DateUtils {
    /**
     * 一秒的毫秒数
     */
    public static final Long ONE_SECOND = 1000L;
    /**
     * 一分钟的毫秒数
     */
    public static final Long ONE_MINUNTE = ONE_SECOND * 60;
    /**
     * 一小时的毫秒数
     */
    public static final Long ONE_HOUR = ONE_MINUNTE * 60;
    /**
     * 一天的毫秒数
     */
    public static final Long ONE_DAY = ONE_HOUR * 24;
    /**
     * 一周的毫秒数
     */
    public static final Long ONE_WEEK = ONE_DAY * 7;

    public static String YYYY = "yyyy";

    public static String YYYY_MM = "yyyy-MM";

    public static String YYYY_MM_DD = "yyyy-MM-dd";

    public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";

    public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";

    public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";

    public static String YYYY_MM_DD_T_HH_MM_SS_Z = "yyyy-MM-dd'T'HH:mm:ss.S'Z'";

    /**
     * 获取当前时间戳
     * @return
     */
    public static Long getCurrTime(){
        return System.currentTimeMillis();
    }

    /**
     * 返回yyyy-MM-dd HH:mm:ss格式的前时间
     * @return
     */
    public static String getCurrFormatDate(){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
        return simpleDateFormat.format(new Date());
    }

    /**
     * 返回pattern格式的当前时间
     * @return
     */
    public static String getCurrFormatDate(String pattern){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
        return simpleDateFormat.format(new Date());
    }

    /**
     * 时间格式转换成yyyy-MM-dd hh:mm:ss格式
     * @param date
     * @return
     */
    public static String format(Date date) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        return sdf.format(date);
    }

    /**
     * 将指定格式的时间字符串转为Date
     * @param dateStr
     * @param pattren
     * @return
     * @throws ParseException
     */
    public static Date formatStrDate(String dateStr, String pattren) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(pattren);
        return sdf.parse(dateStr);
    }

    /**
     * 返回日期的年份
     * @param str 日期
     * @param pattern 格式
     * @return
     * @throws ParseException
     */
    public static int getYear(String str, String pattern) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        Date parse = sdf.parse(str);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(parse);
        return calendar.get(Calendar.YEAR);
    }

    /**
     * 获取当前时间的年份
     * @return
     */
    public static int getCurrYear() {
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.YEAR);
    }

    /**
     * 两相同格式时间字符串的时间差
     * @param str1
     * @param str2
     * @param pattern
     * @return
     * @throws ParseException
     */
    public static Long deltatTDateStr(String str1, String str2, String pattern) throws ParseException {
        SimpleDateFormat format = new SimpleDateFormat(pattern);
        return deltatTDate(format.parse(str1), format.parse(str2));
    }

    /**
     * 时间差
     * @param d1
     * @param d2
     * @return
     */
    public static Long deltatTDate(Date d1, Date d2) {
        return deltatT(d1.getTime(), d2.getTime());
    }

    /**
     * 两时间戳差值
     * @param t1
     * @param t2
     * @return
     */
    public static Long deltatT(Long t1, Long t2) {
        return t1 - t2;
    }

    /**
     * 获取某年某月的总天数
     * @param year
     * @param month
     * @return
     */
    public static int getDayCountOfMonth(int year,int month) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, year);
        calendar.set(Calendar.MONTH, month - 1);
        // 获取某月的最大天数
        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    }

    /**
     * 获取上一个月的总天数
     * @return
     */
    public static int getDayCountByLastMonth(){
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        return getDayCountOfMonth(year, month);
    }

    /**
     * 某月的最后一天
     * @param year
     * @param month
     * @return
     */
    public synchronized static String getLastDayOfMonth(int year, int month) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        cal.set(Calendar.DAY_OF_MONTH, actualMaximum);
        SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD);
        return format.format(cal.getTime()) + " 23:59:59";
    }

    /**
     * 某月的第一天
     * @param year
     * @param month
     * @return
     */
    public synchronized static String getFirstDayOfMonth(int year, int month) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
        cal.set(Calendar.DAY_OF_MONTH, actualMinimum);
        SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD);
        return format.format(cal.getTime()) + " 00:00:00";
    }

    /**
     * 上个月的开始时间日期
     * @return
     */
    public synchronized static String getFirstDayOfPastMonth() {
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        return getFirstDayOfMonth(year, month - 1);
    }

    /**
     * 上月的结束时间日期
     * @return
     */
    public synchronized static String getLastDayOfPastMonth() {
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        return getLastDayOfMonth(year, month - 1);
    }

    /**
     * 过去一天的日期
     * @return
     */
    public synchronized static String getPastDay(){
        Calendar instance = Calendar.getInstance();
        int day = instance.get(Calendar.DAY_OF_MONTH) - 1;
        instance.set(Calendar.DAY_OF_MONTH, day);
        SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD);
        return format.format(instance.getTime());
    }
    // 三天前
    Date now = new Date();
    Date begin = DateUtils.addDays(now, -3);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会理财的程序员不是好摄影师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值