From 2f55cebbad3dea187a5f91d16ec80a9677dab699 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 13 十一月 2024 11:16:53 +0800 Subject: [PATCH] 1 --- src/main/java/com/yssh/utils/DateUtils.java | 305 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 305 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/yssh/utils/DateUtils.java b/src/main/java/com/yssh/utils/DateUtils.java new file mode 100644 index 0000000..838ce2b --- /dev/null +++ b/src/main/java/com/yssh/utils/DateUtils.java @@ -0,0 +1,305 @@ +package com.yssh.utils; + +import java.lang.management.ManagementFactory; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +import org.apache.commons.lang3.time.DateFormatUtils; + +public class DateUtils extends org.apache.commons.lang3.time.DateUtils { + public static String YYYY = "yyyy"; + + public static String YYYY_MM = "yyyy-MM"; + + public static String YYYY_MM_DD = "yyyy-MM-dd"; + + public static String YYYYMM = "yyyyMM"; + + public static String YYYYMMDD = "yyyyMMdd"; + + public static String YYYYMMDDHH = "yyyyMMddHH"; + + public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + + public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; + + public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm"; + + public static String YYYY_MM_DD_HH = "yyyy-MM-dd HH"; + + private static String[] parsePatterns = {"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", + "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", + "yyyy.MM.dd HH:mm", "yyyy.MM"}; + + public static Date getNowDate() { + return new Date(); + } + + public static String getDate() { + return dateTimeNow(YYYY_MM_DD); + } + + public static final String getTime() { + return dateTimeNow(YYYY_MM_DD_HH_MM_SS); + } + + public static final String dateTimeNow() { + return dateTimeNow(YYYYMMDDHHMMSS); + } + + public static final String dateTimeNow(final String format) { + return parseDateToStr(format, new Date()); + } + + public static final String dateTime(final Date date) { + return parseDateToStr(YYYY_MM_DD, date); + } + + public static final String parseDateToStr(final String format, final Date date) { + return new SimpleDateFormat(format).format(date); + } + + public static final Date dateTime(final String format, final String ts) { + try { + return new SimpleDateFormat(format).parse(ts); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + public static String getYyyyMm(Date date) { + return new SimpleDateFormat(YYYYMM).format(date); + } + + public static String getYyyyMmDd(Date date) { + return new SimpleDateFormat(YYYYMMDD).format(date); + } + + public static String getYyyyMmDdHh(Date date) { + return new SimpleDateFormat(YYYYMMDDHH).format(date); + } + + public static String getYyyyMmDdHhMmSs(Date date) { + return new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(date); + } + + /** + * 鏃ユ湡璺緞 鍗冲勾/鏈�/鏃� 濡�2018/08/08 + */ + public static final String datePath() { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyy/MM/dd"); + } + + /** + * 鏃ユ湡璺緞 鍗冲勾/鏈�/鏃� 濡�20180808 + */ + public static final String dateTime() { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyyMMdd"); + } + + /** + * 鏃ユ湡鍨嬪瓧绗︿覆杞寲涓烘棩鏈� 鏍煎紡 + */ + public static Date parseDate(Object str) { + if (str == null) { + return null; + } + try { + return parseDate(str.toString(), parsePatterns); + } catch (ParseException e) { + return null; + } + } + + /** + * 鑾峰彇鏈嶅姟鍣ㄥ惎鍔ㄦ椂闂� + */ + public static Date getServerStartDate() { + long time = ManagementFactory.getRuntimeMXBean().getStartTime(); + return new Date(time); + } + + /** + * 璁$畻涓や釜鏃堕棿宸� + */ + public static String getDatePoor(Date endDate, Date nowDate) { + long nd = 1000 * 24 * 60 * 60; + long nh = 1000 * 60 * 60; + long nm = 1000 * 60; + // long ns = 1000; + // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮� + long diff = endDate.getTime() - nowDate.getTime(); + // 璁$畻宸灏戝ぉ + long day = diff / nd; + // 璁$畻宸灏戝皬鏃� + long hour = diff % nd / nh; + // 璁$畻宸灏戝垎閽� + long min = diff % nd % nh / nm; + // 璁$畻宸灏戠//杈撳嚭缁撴灉 + // long sec = diff % nd % nh % nm / ns; + return day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓"; + } + + /** + * @throws + * @Title: differHour + * @Description: 鑾峰彇涓や釜鏃堕棿宸嚑涓皬鏃� + * @param: @param endDate + * @param: @param nowDate + * @param: @return + * @return: long + */ + public static int differDay(Date startDate, Date endDate) { + long nd = 1000 * 24 * 60 * 60; + long diff = endDate.getTime() - startDate.getTime(); + double dd = Double.valueOf(String.valueOf(diff)) / nd; + // 璁$畻宸灏戝ぉ + return Double.valueOf(Math.ceil(dd)).intValue(); + } + + /** + * @Description: 鑾峰彇涓�娈垫椂闂撮棿闅� + * @param:date 闇�瑕佹搷浣滅殑鏃堕棿瀵硅薄 + * @param:day 鎿嶄綔鐨勬椂闂撮棿闅� + * 姝f暟涓轰箣鍚庝竴娈垫椂闂� + * 璐熸暟涓轰箣鍓嶄竴娈垫椂闂� + * @param:dateType 鎿嶄綔鐨勬椂闂存椂鍒嗙澶╅�夋嫨 + * 甯哥敤鏈夛細 + * Calendar.MINUTE 鍒� + * Calendar.HOUR_OF_DAY 鏃� + * Calendar.DATE 澶� + * Calendar.MONTH 鏈� + */ + public static Date getAPeriodOfTime(Date date, int day, int dateType) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(dateType, day); + return calendar.getTime(); + } + + public static List<String> get3Hours() { + List<String> times = new ArrayList<>(); + SimpleDateFormat ymdh = new SimpleDateFormat(YYYYMMDDHH); + + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.HOUR_OF_DAY, 1); + + for (int i = 0; i < 3; i++) { + calendar.add(Calendar.HOUR_OF_DAY, -1); + String time = ymdh.format(calendar.getTime()); + // times.add(time); + times.add(0, time); + } + + return times; + } + + public static Map<Date, Date> segmentationDateByTimeQuantum(Date startDate, Date endDate, int timeQuantum, int dateType) { + LinkedHashMap<Date, Date> result = new LinkedHashMap<Date, Date>(); + long startTimeMillisecond = startDate.getTime(); + long endTimeMillisecond = endDate.getTime(); + Long quantumTimeMillisecond = 0L; + switch (dateType) { + case Calendar.DATE: + quantumTimeMillisecond = new Integer(1000 * 60 * 60 * 24 * timeQuantum).longValue(); + break; + case Calendar.HOUR_OF_DAY: + quantumTimeMillisecond = new Integer(1000 * 60 * 60 * timeQuantum).longValue(); + break; + case Calendar.MINUTE: + quantumTimeMillisecond = new Integer(1000 * 60 * timeQuantum).longValue(); + break; + default: + break; + } + for (long time = startTimeMillisecond; time < endTimeMillisecond; time += quantumTimeMillisecond) { + Date beginDate = new Date(time); + Date finishDate = new Date(time + quantumTimeMillisecond); + if (finishDate.getTime() > endTimeMillisecond) { + finishDate = endDate; + } + result.put(beginDate, finishDate); + } + return result; + } + + /** + * 鍓櫎鏃ユ湡鐨勬椂闂撮儴鍒� + */ + public static Date trimTime(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + + return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00"); + } + + /** + * 鍘诲勾 + */ + public static Date lastYear(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.YEAR, -1); + + return cal.getTime(); + } + + /** + * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆 + */ + public static int getWeekOfYear(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + + return cal.get(Calendar.WEEK_OF_YEAR); + } + + /** + * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆鐨勬槦鏈熶竴 + */ + public static Date getWeekOfYearForMon(int year, int weekOfYear) { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.YEAR, year); + cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + cal.set(Calendar.WEEK_OF_YEAR, weekOfYear); + + return cal.getTime(); + } + + /** + * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆鐨勬槦鏈熸棩 + */ + public static Date getWeekOfYearForSun(int year, int weekOfYear) { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.YEAR, year); + cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); + cal.set(Calendar.WEEK_OF_YEAR, weekOfYear); + + return cal.getTime(); + } + + /** + * 鑾峰彇鏈湀绗竴澶� + **/ + public static Date getMonthStart(Date date) { + Calendar cal = Calendar.getInstance(); + // cal.set(Calendar.MONTH, 3) + cal.setTime(date); + cal.set(Calendar.DAY_OF_MONTH, 1); + return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00"); + } + + /** + * 鑾峰彇鏈湀鏈�鍚庝竴澶� + **/ + public static Date getMonthEnd(Date date) { + Calendar cal = Calendar.getInstance(); + // cal.set(Calendar.MONTH, 3) + cal.setTime(date); + cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); + return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 23:59:59"); + } +} -- Gitblit v1.9.3