From e5bf0d08d05f5c58224fe28cdf743a1bae88e3f0 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 30 十一月 2023 16:48:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java |  230 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 230 insertions(+), 0 deletions(-)

diff --git a/ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java b/ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java
new file mode 100644
index 0000000..db296c7
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java
@@ -0,0 +1,230 @@
+package com.ycl.common.util;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+public class DateUtil {
+
+	/**
+	 * 鑾峰彇涓ゆ棩鏈熶箣闂撮棿闅旂殑澶╂暟
+	 * 
+	 * @param smdate
+	 *            杈冨皬鐨勬椂闂�
+	 * @param bdate
+	 *            杈冨ぇ鐨勬椂闂�
+	 * @return 鐩稿樊澶╂暟
+	 */
+	public static int daysBetween(Date smdate, Date bdate) {
+		long between_days = 0;
+		try {
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+			smdate = sdf.parse(sdf.format(smdate));
+			bdate = sdf.parse(sdf.format(bdate));
+			Calendar cal = Calendar.getInstance();
+			cal.setTime(smdate);
+			long time1 = cal.getTimeInMillis();
+			cal.setTime(bdate);
+			long time2 = cal.getTimeInMillis();
+			between_days = (time2 - time1) / (1000 * 3600 * 24);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+
+		return Integer.parseInt(String.valueOf(between_days));
+	}
+
+	public static boolean isBetween(Date date, Date startDate, Date endDate) {
+ 
+		try {
+
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			startDate = sdf.parse(sdf.format(startDate));
+			endDate = sdf.parse(sdf.format(endDate));
+			date = sdf.parse(sdf.format(date));
+
+			Calendar cal = Calendar.getInstance();
+
+			cal.setTime(date);
+			long time0 = cal.getTimeInMillis();
+			cal.setTime(startDate);
+			long time1 = cal.getTimeInMillis();
+			cal.setTime(endDate);
+			long time2 = cal.getTimeInMillis();
+
+			if (time0 > time1 && time0 <= time2)
+				return true;
+
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		return false;
+
+	}
+
+	public static long DifferMillis(Date sDate, Date eDate) {
+		try {
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			sDate = sdf.parse(sdf.format(sDate));
+			eDate = sdf.parse(sdf.format(eDate));
+			Calendar cal = Calendar.getInstance();
+			cal.setTime(sDate);
+			long time1 = cal.getTimeInMillis();
+			cal.setTime(eDate);
+			long time2 = cal.getTimeInMillis();
+			return Math.abs(time1 - time2);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+
+		return -1L;
+	}
+
+	public static long DifferSeconds(Date sDate, Date eDate) {
+
+		return DifferMillis(sDate, eDate) / 1000;
+	}
+
+	/**
+	 * 鐩稿樊鍒嗛挓鏁�
+	 * 
+	 * @param sDate
+	 * @param eDate
+	 * @return
+	 */
+	public static long DifferMinutes(Date sDate, Date eDate) {
+
+		return Long.parseLong(String.valueOf(DifferMillis(sDate, eDate)
+				/ (1000 * 60)));
+	}
+
+	public static String getNowDate(String format) {
+		return new SimpleDateFormat(format).format(new Date());
+	}
+
+	public static String getDateString(Date date, String format) {
+		return new SimpleDateFormat(format).format(date);
+	}
+
+	public static Date parse(String date, String format) {
+
+		try {
+			return new SimpleDateFormat(format).parse(date);
+		} catch (ParseException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	public static boolean nowTimeBetween(String beginTimeStr, String endTimeStr)
+			throws ParseException {
+		SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm:ss");
+		Long beginTime = dateFormat.parse(beginTimeStr).getTime();
+		Long endTime = dateFormat.parse(endTimeStr).getTime();
+		Long nowTime = dateFormat.parse(dateFormat.format(new Date()))
+				.getTime();
+		if (nowTime >= beginTime && nowTime <= endTime) {
+			return true;
+		}
+		return false;
+	}
+
+	@SuppressWarnings("static-access")
+	public static Date addDate(Date date, int days) {
+		Calendar calendar = new GregorianCalendar();
+		calendar.setTime(date);
+		calendar.add(calendar.DATE, days);// 鎶婃棩鏈熷線鍚庡鍔犱竴澶�.鏁存暟寰�鍚庢帹,璐熸暟寰�鍓嶇Щ鍔�
+		return calendar.getTime(); // 杩欎釜鏃堕棿灏辨槸鏃ユ湡寰�鍚庢帹涓�澶╃殑缁撴灉
+	}
+
+	@SuppressWarnings("static-access")
+	public static Date addHour(Date date, int hour) {
+		Calendar calendar = new GregorianCalendar();
+		calendar.setTime(date);
+		calendar.add(calendar.HOUR, hour);// 鎶婃棩鏈熷線鍚庡鍔犱竴澶�.鏁存暟寰�鍚庢帹,璐熸暟寰�鍓嶇Щ鍔�
+		return calendar.getTime(); // 杩欎釜鏃堕棿灏辨槸鏃ユ湡寰�鍚庢帹涓�澶╃殑缁撴灉
+	}
+
+	@SuppressWarnings("static-access")
+	public static Date addMinute(Date date, int minute) {
+		Calendar calendar = new GregorianCalendar();
+		calendar.setTime(date);
+		calendar.add(calendar.MINUTE, minute);// 鎶婃棩鏈熷線鍚庡鍔犱竴澶�.鏁存暟寰�鍚庢帹,璐熸暟寰�鍓嶇Щ鍔�
+		return calendar.getTime(); // 杩欎釜鏃堕棿灏辨槸鏃ユ湡寰�鍚庢帹涓�澶╃殑缁撴灉
+	}
+
+	@SuppressWarnings("static-access")
+	public static Date addSecond(Date date, int second) {
+		Calendar calendar = new GregorianCalendar();
+		calendar.setTime(date);
+		calendar.add(calendar.SECOND, second);// 鎶婃棩鏈熷線鍚庡鍔犱竴澶�.鏁存暟寰�鍚庢帹,璐熸暟寰�鍓嶇Щ鍔�
+		return calendar.getTime(); // 杩欎釜鏃堕棿灏辨槸鏃ユ湡寰�鍚庢帹涓�澶╃殑缁撴灉
+	}
+
+	/**
+	 * 缁熻涓や釜鏃堕棿鐨勬椂闂村樊
+	 * two-one
+	 * 鐩稿樊鍑犵鍑犳绉�
+	 */
+	public static String getDistanceDateTime(Date one, Date two) {
+		long day = 0;//澶╂暟宸�
+		long hour = 0;//灏忔椂鏁板樊
+		long min = 0;//鍒嗛挓鏁板樊
+		long second=0;//绉掓暟宸�
+		long diff=0 ;//姣宸�
+		String result = "";
+		final Calendar c = Calendar.getInstance();
+		c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
+		c.setTime(one);
+		long time1 = one.getTime();
+		long time2 = two.getTime();
+		diff = time2 - time1;
+		day = diff / (24 * 60 * 60 * 1000);
+		hour = (diff / (60 * 60 * 1000) - day * 24);
+		min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
+		second = diff/1000;
+		// System.out.println("day="+day+" hour="+hour+" min="+min+" ss="+second%60+" SSS="+diff%1000);
+		String daystr = day%30+"澶�";
+		String hourStr = hour%24+"灏忔椂";
+		String minStr = min%60+"鍒�";
+		String secondStr = second%60+"绉�";
+		if (day!=0){
+			result = result + daystr;
+		}
+		if (hour!=0){
+			result = result + hourStr;
+		}
+		if (min!=0){
+			result = result + minStr;
+		}
+		if (second!=0){
+			result = result + secondStr;
+		}
+		return result;
+	}
+	public static Date fromLocalDateTime(LocalDateTime ldt){
+		ZoneId zoneId = ZoneId.systemDefault();
+		ZonedDateTime zdt = ldt.atZone(zoneId);
+		Date date = Date.from(zdt.toInstant());
+		return date ;
+	}
+	public static void main(String[] args) throws ParseException {
+
+		Calendar calendar = Calendar.getInstance();
+		calendar.add(Calendar.DATE,-1);
+		calendar.add(Calendar.HOUR,-6);
+		calendar.add(Calendar.MINUTE,-5);
+		calendar.add(Calendar.SECOND,-4);
+		calendar.add(Calendar.MILLISECOND, -30);
+		Date date = calendar.getTime();
+		Date today = new Date();
+		// System.out.println(getDistanceDateTime(date,today));
+	}
+}
\ No newline at end of file

--
Gitblit v1.8.0