DateUtil 时间工具类

    技术2022-07-13  62

    时间工具类

    /** * 操作时间工具类s */ public class DateUtil extends DateUtils { //判断两个日期时间是否相距一天之内,一天之内返回true,否则反手false public static boolean judgmentDate(String date1, String date2) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d HH:mm:ss"); Date start = sdf.parse(date1); Date end = sdf.parse(date2); long cha = end.getTime() - start.getTime(); if (cha < 0L) { return false; } else { double result = (double)cha * 1.0D / 3600000.0D; return result <= 24.0D; } } // 比较两个日期相差的天数 date2尽量为最近日期 public static int compareDay(Date date1, Date date2) { if (date1 == null || date2 == null){ return 0; } Calendar d1 = Calendar.getInstance(); d1.setTime(date1); Calendar d2 = Calendar.getInstance(); d2.setTime(date2); if (d1.after(d2)) { java.util.Calendar swap = d1; d1 = d2; d2 = swap; } /* * 经过上面的处理,保证d2在d1之后 * 下面这个days可能小于0,因为d2和d1可能不在同一年里,这样的话虽然d1的年份小,但其在一年中的"第几天"却可能比d2大。 */ int days = d2.get(java.util.Calendar.DAY_OF_YEAR) - d1.get(java.util.Calendar.DAY_OF_YEAR); int y2 = d2.get(java.util.Calendar.YEAR); if (d1.get(java.util.Calendar.YEAR) != y2) {// 如果不在同一年 d1 = (java.util.Calendar) d1.clone(); do { days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR); /* * 给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值。 例如,在某些年份中,MONTH 字段的实际最大值是 * 12,而在希伯来日历系统的其他年份中,该字段的实际最大值是 13。 DAY_OF_YEAR:闰年366? */ d1.add(java.util.Calendar.YEAR, 1); } while (d1.get(java.util.Calendar.YEAR) != y2); } return days; } }
    Processed: 0.018, SQL: 9