package com.cyzh.repeater.utils; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import org.apache.log4j.Logger; import java.util.HashMap; import java.util.Map; public class DateUti { private static final Logger logger = Logger.getLogger(DateUti.class); /** * 比较开始时间和结束时间 * @param sDate * @param eDate * @return */ public static Map dateCompare(String sDate, String eDate){ Map map = new HashMap<>(); String date = formatDate(eDate); if(StrUtil.isBlank(date)){ map.put("isOk", false); map.put("errMsg", "结束时间格式有误"); return map; } if(isBigCurrentDate(date)){ map.put("isOk", false); map.put("errMsg", "结束时间要大于当前时间"); return map; } String keyStartDate = formatDate(sDate); if(StrUtil.isBlank(keyStartDate)){ map.put("isOk", false); map.put("errMsg", "开始时间格式有误"); return map; } if(Convert.toLong(keyStartDate) >= Convert.toLong(date)){ map.put("isOk", false); map.put("errMsg", "结束时间要大于开始时间"); return map; } map.put("isOk", true); map.put("errMsg", ""); map.put("startDate", keyStartDate); map.put("endDate", date); return map; } /** * 格式化日期,格式:yyyyMMddHHmmss * @param date * @return */ public static String formatDate(String date){ try { return DateUtil.format(DateUtil.parse(date), "yyyyMMddHHmmss"); }catch (Exception e){ logger.error("格式化yyyyMMddHHmmss异常:", e); return null; } } /** * 日期是否大于当前时间 * @param date 比较的时间 * @return true:大于,false 小于 */ public static boolean isBigCurrentDate(String date){ String currentDate = DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"); date = DateUtil.format(DateUtil.parse(date), "yyyyMMddHHmmss"); if(Convert.toLong(currentDate) > Convert.toLong(date)){ return true; } return false; } public static void main(String[] args) { dateCompare("2017-04-01 23:33:23", "2021-04-01 23:33:23"); } }