package org.cs.base.utils.enm; /** * 时间比较单位枚举 * <p> * HOUR, //时 * <p> * MINUTE, //分 * <p> * SECOND //秒 * * @author admin * @since 2022-4-25 */ public enum CompareUnit { HOUR, //时 MINUTE, //分 SECOND //秒 }
package org.cs.base.utils; import org.apache.log4j.Logger; import org.cs.base.utils.enm.CompareUnit; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.text.SimpleDateFormat; import java.util.Calendar; /** * 日期工具类 * * @author admin * @since 2022-04-25 */ public class CalendarUtils { private static Logger log = Logger.getLogger(CalendarUtils.class); /** * 时间比较 * * @param t1 时间1 * @param t2 时间2 * @param unit 单位 * @return */ public static long compareTo(String t1, String t2, CompareUnit unit) { long res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); try { c1.setTime(simpleDateFormat.parse(t1)); c2.setTime(simpleDateFormat.parse(t2)); long m1 = c1.getTime().getTime(); long m2 = c2.getTime().getTime(); switch (unit) { case SECOND: res = (m1 - m2) / 1000; break; case MINUTE: res = (m1 - m2) / 1000 / 60; break; case HOUR: res = (m1 - m2) / 1000 / 60 / 24; break; default: res = -1L; break; } } catch (Exception e) { ByteArrayOutputStream bs = new ByteArrayOutputStream(); e.printStackTrace(new PrintStream(bs)); log.warn(bs); res = -1L; } return res; } }
public static void main(String[] args) throws ParseException { String t1 = "2022/04/25 18:57:05"; String t2 = "2022/04/25 18:21:01"; System.out.println("时:" + CalendarUtils.compareTo(t1, t2, CompareUnit.HOUR)); System.out.println("分:" + CalendarUtils.compareTo(t1, t2, CompareUnit.MINUTE)); System.out.println("秒:" + CalendarUtils.compareTo(t1, t2, CompareUnit.SECOND)); }