Date与String互相转换及日期的大小比较

Date与String互相转换及日期的大小比较。

private static final String PATTERN = "yyyy-MM-dd HH:mm:ss";

/**
 * String转Date
 *
 * @param str
 * @return
 */
public static Date strToDate(String str) {
    if (StringUtils.isEmpty(str)) {
        return null;
    }

    SimpleDateFormat sdf = new SimpleDateFormat(PATTERN);

    try {
        return sdf.parse(str);
    } catch (ParseException e) {
        e.printStackTrace();
    }

    return null;
}

/**
 * Date转String
 *
 * @param date
 * @return
 */
public static String dateToStr(Date date) {
    SimpleDateFormat sdf = new SimpleDateFormat(PATTERN);
    String time = sdf.format(date);
    return time;
}

/**
 * 通过Date自带方法before()和after()比较时间大小
 * 通过Date的compareTo()方法比较时间大小
 *
 * @param beginTime
 * @param endTime
 * @return
 */
public static void compare(String beginTime, String endTime) {
    Date beginDate = strToDate(beginTime);
    Date endDate = strToDate(endTime);
    if (beginDate != null && endDate != null) {
        System.out.println(beginDate.before(endDate));
        System.out.println(beginDate.after(endDate));
        System.out.println(beginDate.compareTo(endDate));
    }
}

/**
 * 通过String的compareTo()方法比较时间大小
 * 返回正值是代表左侧日期大于参数日期,反之亦然,日期格式必须一致
 *
 * @param beginTime
 * @param endTime
 * @return
 */
public static void compare2(String beginTime, String endTime) {
    Integer i = beginTime.compareTo(endTime);
    System.out.println(i);
}

/**
 * 转成Date格式换成秒数比较秒数大小,通过getTime()方法
 *
 * @param beginTime
 * @param endTime
 * @return
 */
public static void compare3(String beginTime, String endTime) {
    Date beginDate = strToDate(beginTime);
    Date endDate = strToDate(endTime);
    long begin;
    long end;
    if (beginDate != null && endDate != null) {
        begin = beginDate.getTime();
        end = endDate.getTime();
        System.out.println(begin>end);
        System.out.println(begin<end);
        System.out.println(begin==end);
    }
}

 

posted @ 2019-02-27 10:30  醉酒染青衣  阅读(2513)  评论(0编辑  收藏  举报