From b2001a7042d511cea1c1b2000edca57253d992ad Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期六, 20 十二月 2025 16:21:51 +0800
Subject: [PATCH] 时间控制修改
---
ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java | 234 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 234 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..c392d05
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java
@@ -0,0 +1,234 @@
+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) {
+ if (day == 0) {
+ result = result + minStr;
+ }
+ }
+ if (second != 0) {
+ if (day == 0 && hour == 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