JAVA时间工具类
Date d1 = new Date(System.currentTimeMillis()-1000); Date d2 = new Date(System.currentTimeMillis()); System.out.println(d1.compareTo(d2));
前者大于后者 返回大于0 反之小于0
格式化时间
public static SimpleDateFormat longFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static SimpleDateFormat shortFormat = new SimpleDateFormat("yyyy-MM-dd"); public static SimpleDateFormat monthFormat = new SimpleDateFormat("yyyy-M");//格式化为年月 /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd */ public static Date getNowShortDate() { String dateString = shortFormat.format(new Date()); ParsePosition pos = new ParsePosition(0); Date currentTime_2 = shortFormat.parse(dateString, pos); return currentTime_2; } /** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { String dateString = longFormat.format(new Date()); ParsePosition pos = new ParsePosition(0); Date currentTime_2 = longFormat.parse(dateString, pos); return currentTime_2; } /** * 获取现在时间 * * @return返回字符串格式 yyyy-MM-dd HH:mm:ss */ public static String getNowStringDate() { String dateString = longFormat.format(new Date()); return dateString; } /** * 获取现在时间 * * @return返回字符串格式 yyyy-MM-dd */ public static String getNowShortStringDate() { String dateString = shortFormat.format(new Date()); return dateString; } /** * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss * * @param strDate * @return */ public static Date strToDate(String strDate) { ParsePosition pos = new ParsePosition(0); Date strtodate = longFormat.parse(strDate, pos); return strtodate; } /** * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss * * @param dateDate * @return */ public static String dateToString(Date dateDate) { String dateString = longFormat.format(dateDate); return dateString; } /** * 将长时间格式字符串转换为时间 yyyy-MM-dd * * @param dateDate * @return */ public static String strToString(Date dateDate) { String dateString = shortFormat.format(dateDate); return dateString; } /** * 时间是否有重合 * * @param startDate 开始时间 * @param endDate 结束时间 * @param startReferenceDate 比对的开始时间 * @param endReferenceDate 比对的结束时间 * @return true 有重合 false 没有重合 */ public static boolean isTimeSuperposition(Date startDate, Date endDate, Date startReferenceDate, Date endReferenceDate) { Integer i1 = compareDate(startDate, startReferenceDate); Integer i2 = compareDate(startDate, endReferenceDate); Integer i3 = compareDate(endDate, startReferenceDate); Integer i4 = compareDate(endDate, endReferenceDate); if (i1 != null && i2 != null && 1 == i1 && -1 == i2) { return true; } if (i3 != null && i4 != null && 1 == i3 && -1 == i4) { return true; } if (i1 != null && i4 != null && i1 <= 0 && i4 >= 0) { return true; } return false; } /** * 格式化Date时间 * * @param time Date类型时间 * @param timeFromat String类型格式 * @param defaultValue 默认值为当前时间Date * @return 格式化后的字符串 */ public static String parseDateToStr(Date time, String timeFromat, final Date defaultValue) { try { DateFormat dateFormat = new SimpleDateFormat(timeFromat); return dateFormat.format(time); } catch (Exception e) { e.printStackTrace(); if (defaultValue != null) return parseDateToStr(defaultValue, timeFromat); else return parseDateToStr(new Date(), timeFromat); } } public static String getTimestamp(Date date) { SimpleDateFormat format = new SimpleDateFormat("MMddHHmm"); return format.format(date); } /** * 格式化Date时间 * * @param time Date类型时间 * @param timeFromat String类型格式 * @return 格式化后的字符串 */ public static String parseDateToStr(Date time, String timeFromat) { DateFormat dateFormat = new SimpleDateFormat(timeFromat); return dateFormat.format(time); } /** * 获取两个日期中间的月份 * * @Param [minDate, maxDate] * @return java.util.List<java.lang.String> * @exception * */ public static List<String> getMonthBetween(String minDate, String maxDate) { ArrayList<String> result = new ArrayList<String>(); try { Calendar min = Calendar.getInstance(); Calendar max = Calendar.getInstance(); min.setTime(monthFormat.parse(minDate)); min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1); max.setTime(monthFormat.parse(maxDate)); max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2); Calendar curr = min; while (curr.before(max)) { result.add(monthFormat.format(curr.getTime())); curr.add(Calendar.MONTH, 1); } }catch (ParseException e) { e.printStackTrace(); } return result; }
public static final String shortFormat = "yyyy-MM-dd"; public static final String longFormat = "yyyy-MM-dd HH:mm:ss"; /** * 统计两个时间的时间差 * 相差几天 */ public static Long calculateTimeDifference(Date startDate, Date endDate) { if (null == startDate || null == endDate) { return -1L; } ZoneId zoneId = ZoneId.systemDefault(); LocalDateTime fromDateTime = LocalDateTime.ofInstant(startDate.toInstant(), zoneId); LocalDateTime toDateTime = LocalDateTime.ofInstant(endDate.toInstant(), zoneId); LocalDateTime tempDateTime = LocalDateTime.from(fromDateTime); long days = tempDateTime.until(toDateTime, ChronoUnit.DAYS); return days; } /** * 校验时间字符串是否合法 * * @param dateStr the date str * @param pattern the pattern * @return the boolean */ public static boolean validDateStr(String dateStr, String pattern) { if (StringUtils.isEmpty(dateStr)) { return false; } if (StringUtils.isEmpty(pattern)) { pattern = longFormat; } try { LocalDate.parse(dateStr, new DateTimeFormatterBuilder().appendPattern(pattern).parseStrict().toFormatter()); return true; } catch (Exception e) { return false; } } /** * 将字符串转换为时间 * * @param * @return */ public static Date strToDate(String dateStr, String pattern) { Date date = null; if (StringUtils.isBlank(dateStr)) { return new Date(); } //实现将字符串转成⽇期类型 SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); try { date = dateFormat.parse(dateStr); } catch (ParseException e) { log.error(e.getMessage(), e); } return date; } /** * 将时间转换字符串 * * @param data * @param formatType * @return */ public static String dateToString(Date data, String formatType) { if (ObjectUtils.isEmpty(data)) { data = new Date(); } return new SimpleDateFormat(formatType).format(data); } /*** * 将对应格式的时间转换给yyyy-MM-dd格式 * @param strDate * @param pattern * @return yyyy-MM-dd类型字符串 */ public static String toFormatDate(String strDate, String pattern) { try { Date date = new SimpleDateFormat(pattern).parse(strDate); return new SimpleDateFormat(shortFormat).format(date); } catch (ParseException e) { log.error(e.getMessage(), e); return null; } }

浙公网安备 33010602011771号