| | |
| | | package org.jeecg.modules.mdc.util; |
| | | |
| | | |
| | | import io.swagger.models.auth.In; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.DecimalFormat; |
| | | import java.text.ParseException; |
| | |
| | | } |
| | | |
| | | /** |
| | | * @return 获取两个date的时间差,结果为秒 |
| | | * @return 获取两个date的时间差,结果为秒 除 |
| | | */ |
| | | public static long differentSecond(Date startDate, Date endDate) { |
| | | return (endDate.getTime() - startDate.getTime()) / 1000; |
| | | return new BigDecimal(endDate.getTime() - startDate.getTime()).divide(new BigDecimal("1000"), 0, BigDecimal.ROUND_HALF_UP).longValue(); |
| | | // return (endDate.getTime() - startDate.getTime()) / 1000; |
| | | } |
| | | |
| | | /** |
| | |
| | | public static final String STR_DATE_TIME_FULL = "yyyyMMddHHmmssSSS"; |
| | | public static final String STR_HHMMSS = "HH:mm:ss"; |
| | | public static final String STR_HHMM = "HH:mm"; |
| | | public static final String STR_MMDD = "MM-dd"; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 获取start/end的所有日期字符串 格式MM-dd |
| | | * |
| | | * @param start |
| | | * @param end |
| | | * @return |
| | | */ |
| | | public static List<String> getDatesStringLists(Date start, Date end) { |
| | | List<String> list = new ArrayList<>(); |
| | | int i = getDays(start, end); |
| | | for (int j = 0; j <= i; j++) { |
| | | if (j == 0) { |
| | | list.add(format(start, STR_MMDD)); |
| | | } else { |
| | | list.add(format(plusTime(start, j), STR_MMDD)); |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | public static List<String> getMonthBetween(Date start, Date end) { |
| | | List<String> list = new ArrayList<>(); |
| | | Calendar min = Calendar.getInstance(); |
| | |
| | | dateList.forEach(localDate -> result.add(Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()))); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * @param smallDate |
| | | * @param bigDate |
| | | * @desc 获取两个日期之间的天数 |
| | | */ |
| | | public static Integer getDaysBetween(String smallDate, String bigDate) throws ParseException { |
| | | // 日期格式 |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); |
| | | // 获取两个日期的时间戳 |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.setTime(sdf.parse(smallDate)); |
| | | long smallTime = cal.getTimeInMillis(); |
| | | cal.setTime(sdf.parse(bigDate)); |
| | | long bigTime = cal.getTimeInMillis(); |
| | | // 相差的日期 |
| | | long days = (bigTime - smallTime) / (1000 * 3600 * 24); |
| | | // long转int 存在溢出情况 根据业务情况编辑catch中返回值 |
| | | try { |
| | | return Integer.parseInt(String.valueOf(days)); |
| | | } catch (NumberFormatException e) { |
| | | e.printStackTrace(); |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 日期转换,将接口返回的20180524转为2018-05-24 |
| | | * |
| | | * @param str |
| | | * @return |
| | | */ |
| | | public static String dateConvertion(String str) { |
| | | Date parse = null; |
| | | String dateString = ""; |
| | | try { |
| | | parse = new SimpleDateFormat("yyyyMMdd").parse(str); |
| | | dateString = new SimpleDateFormat("yyyy-MM-dd").format(parse); |
| | | } catch (ParseException e) { |
| | | dateString = null; |
| | | } |
| | | |
| | | return dateString; |
| | | } |
| | | } |