From 8185e5cdc2bbdf7fb4ca46a10864106893a01ed3 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 20 十一月 2024 15:30:12 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/utils/DateUtils.java |  301 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 301 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..5d9786c
--- /dev/null
+++ b/src/main/java/com/yssh/utils/DateUtils.java
@@ -0,0 +1,301 @@
+package com.yssh.utils;
+
+import java.lang.management.ManagementFactory;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import com.yssh.config.InitConfig;
+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 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, InitConfig.getDate());
+	}
+
+	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() {
+		return DateFormatUtils.format(InitConfig.getDate(), "yyyy/MM/dd");
+	}
+
+	/**
+	 * 鏃ユ湡璺緞 鍗冲勾/鏈�/鏃� 濡�20180808
+	 */
+	public static final String dateTime() {
+		return DateFormatUtils.format(InitConfig.getDate(), "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