Java时间工具类(日期转字符串、时间戳转字符串、时间戳转时间、字符串转日期、获取两者之间最大或最小时间、字符串获取两者之间最大或最小时间、字符串时间 获取两个时间差的天数、小时、秒)

10 篇文章 0 订阅
9 篇文章 0 订阅

Java时间工具类

/**
     * 日期转字符串默认 "yyyy-MM-dd"
     * @param date
     * @return
     */
    public static String formatDate(Date date){
        return new SimpleDateFormat(DateEnum.FORMATTERS).format(date);
    }

    /**
     * 串日期转字符
     * @param date      要转换的日期
     * @param format    转换格式
     * @return
     */
    public static String formatDate(Date date, String format){
        return new SimpleDateFormat(format).format(date);
    }

    /**
     * 时间戳转字符串
     * @param format    转换的格式
     * @param stamp     时间戳
     * @return
     */
    public static String formatDate(DateEnum format,Long stamp){
        return new SimpleDateFormat(format.toString()).format(stamp);
    }

    /**
     * 时间戳转时间
     * @param format
     * @param stamp
     * @return
     */
    public static Date formatStamp(DateEnum format,Long stamp) throws ParseException {
        return new SimpleDateFormat(format.toString()).parse(stamp.toString());
    }


    /**
     * 字符串转日期
     * @param strDate
     * @param pattern
     * @return
     */
    public static Date parseDate(String strDate,DateEnum pattern) throws ParseException {
        return new SimpleDateFormat(pattern.toString()).parse(strDate);
    }

    /**
     * 获取两者之间最大或最小时间
     * @param startTime     时间
     * @param endTime       时间
     * @param flag          false:获取最小时间  true:获取最大时间
     * @return
     */
    public static Date betweenDate(Date startTime,Date endTime,Boolean flag){
        if(flag){
            return startTime.before(endTime)?endTime:startTime;
        }
        return startTime.before(endTime)?startTime:endTime;
    }

    /**
     * 字符串获取两者之间最大或最小时间
     * @param startTime     时间
     * @param endTime       时间
     * @param flag          false:获取最小时间  true:获取最大时间
     * @return
     */
    public static String betweenDate(String startTime,String endTime,Boolean flag) throws ParseException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DateEnum.FORMATTERS);
        Date one = simpleDateFormat.parse(startTime);
        Date two = simpleDateFormat.parse(endTime);
        if(flag){
            return one.before(two)?endTime:startTime;
        }
        return one.before(two)?startTime:endTime;
    }

    /**
     * 字符串时间 获取两个时间差的天数、小时、秒
     * @param oneDate   第一个时间
     * @param twoDate   第二个时间
     * @param typeNum   0-天  1-时  2-秒
     * @return
     */
    public static long timeDifference(String oneDate , String twoDate , DateEnum typeNum) throws ParseException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DateEnum.FORMATTERS);
        Date one = simpleDateFormat.parse(oneDate);
        Date two = simpleDateFormat.parse(twoDate);
        long day = 0;
        switch (typeNum){
            case DAY:
                day =one.getTime() - two.getTime() > 0
                        ? (one.getTime() - two.getTime()) / (1000 * 60 * 60 * 24)
                        : (two.getTime() - one.getTime()) / (1000 * 60 * 60 * 24) ;
                break;
            case HOURS:
                day =one.getTime() - two.getTime() > 0
                        ? (one.getTime() - two.getTime()) / (1000 * 60 * 60)
                        : (two.getTime() - one.getTime()) / (1000 * 60 * 60 ) ;
                break;
            case SECONDS:
                day =one.getTime() - two.getTime() > 0
                        ? (one.getTime() - two.getTime()) / 1000
                        : (two.getTime() - one.getTime()) / 1000  ;
                break;
            default:
                day =one.getTime() - two.getTime() > 0
                        ? (one.getTime() - two.getTime()) / (1000 * 60 * 60 * 24 * 12)
                        : (two.getTime() - one.getTime()) / (1000 * 60 * 60 * 24 * 12) ;
                break;
        }
        return day;
    }

DateEnum

public enum DateEnum {
    YEAR,
    DAY,
    HOURS,
    SECONDS;

    public final static String FORMATTERS = "yyyy-MM-dd";
    public final static String FORMATTERE = "yyyy/MM/dd";
    public final static String FORMATTHOURS = "yyyy-MM-dd hh:mm:ss";
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值