From b5df1cee65f3e9dcf554efcd3f1642a8c79d1e76 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 30 九月 2024 02:12:24 +0800 Subject: [PATCH] 点位监测更换对象+存入mongo+提取utils --- ycl-server/src/main/java/com/ycl/utils/DateUtils.java | 121 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 117 insertions(+), 4 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/utils/DateUtils.java b/ycl-server/src/main/java/com/ycl/utils/DateUtils.java index 8c4baf0..d1e6846 100644 --- a/ycl-server/src/main/java/com/ycl/utils/DateUtils.java +++ b/ycl-server/src/main/java/com/ycl/utils/DateUtils.java @@ -1,16 +1,21 @@ package com.ycl.utils; import org.apache.commons.lang3.time.DateFormatUtils; +import org.glassfish.jaxb.core.v2.TODO; +import javax.annotation.Nullable; import java.lang.management.ManagementFactory; +import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.*; +import java.util.Calendar; import java.util.Date; +import java.util.Objects; /** * 鏃堕棿宸ュ叿绫� - * + * * @author ruoyi */ public class DateUtils extends org.apache.commons.lang3.time.DateUtils @@ -26,13 +31,13 @@ public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; 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", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; /** * 鑾峰彇褰撳墠Date鍨嬫棩鏈� - * + * * @return Date() 褰撳墠鏃ユ湡 */ public static Date getNowDate() @@ -42,7 +47,7 @@ /** * 鑾峰彇褰撳墠鏃ユ湡, 榛樿鏍煎紡涓簓yyy-MM-dd - * + * * @return String */ public static String getDate() @@ -142,6 +147,14 @@ } /** + * 璁$畻鐩稿樊灏忔椂 + */ + public static int differentHoursByMillisecond(Date date1, Date date2) + { + return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600))); + } + + /** * 璁$畻鏃堕棿宸� * * @param endDate 鏈�鍚庢椂闂� @@ -185,4 +198,104 @@ ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } + + + /** + * 鑾峰彇鏌愬ぉ鐨勫紑濮嬫椂闂� + * + * @param date + * @return 2023-01-01 00:00:00 + */ + public static Date getDayStart(@Nullable Date date) { + if (Objects.isNull(date)) { + date = new Date(); + } + LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.of("GMT+8")); + LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 0, 0, 0); + return Timestamp.valueOf(of); + } + + /** + * 鑾峰彇鏌愬ぉ鐨勭粨鏉熸椂闂� + * + * @param date + * @return 2023-01-01 23:59:59 + */ + public static Date getDayEnd(@Nullable Date date) { + if (Objects.isNull(date)) { + date = new Date(); + } + LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()); + LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 23, 59, 59); + return Timestamp.valueOf(of); + } + + /** + * 鑾峰彇鏌愭湀寮�濮嬫棩鏈� + */ + //TODO:鏍¢獙閫昏緫鏄惁姝g‘ + public static String getMouthStart(@Nullable Date date) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Calendar c = Calendar.getInstance(); + if (date != null) { + c.setTime(date); // 濡傛灉date涓嶄负null锛屽垯璁剧疆Calendar鐨勬棩鏈熶负date + } + c.set(Calendar.DAY_OF_MONTH,1); + return df.format(c.getTime()); + } + + /** + * 鑾峰彇鏌愭湀缁撴潫鏃ユ湡 + */ + public static String getMouthEnd(@Nullable Date date) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Calendar c = Calendar.getInstance(); + if (date != null) { + c.setTime(date); // 濡傛灉date涓嶄负null锛屽垯璁剧疆Calendar鐨勬棩鏈熶负date + } + c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); + return df.format(c.getTime()); + } + /** + * 鑾峰彇鎸囧畾Calendar鐨勫搴﹀紑濮嬫棩鏈� + * @param calendar 鏃ュ巻 + * @return 瀛e害绗竴澶� + */ + public static Calendar getQuarterStart(Calendar calendar) { + Calendar quarterStart = (Calendar) calendar.clone(); + // 璁剧疆涓哄綋鍓嶅搴︾殑绗竴涓湀鐨勭涓�澶� + quarterStart.set(Calendar.DAY_OF_MONTH, 1); + int month = quarterStart.get(Calendar.MONTH); + quarterStart.set(Calendar.MONTH, (month / 3) * 3); + return quarterStart; + } + + /** + * 鑾峰彇鎸囧畾Calendar鐨勫搴︾粨鏉熸棩鏈� + * @param calendar 鏃ュ巻 + * @return 瀛e害鏈�鍚庝竴澶� + */ + public static Calendar getQuarterEnd(Calendar calendar) { + Calendar quarterEnd = getQuarterStart(calendar); + // 灏嗘湀浠借缃负涓嬩竴涓搴︾殑绗竴涓湀 + quarterEnd.add(Calendar.MONTH, 3); + // 璁剧疆涓洪偅涓湀鐨勬渶鍚庝竴澶� + quarterEnd.add(Calendar.DAY_OF_MONTH, -1); + return quarterEnd; + } + + + public static Date getDay(int year,int month,int day) { + // 鑾峰彇Calendar瀹炰緥锛岄粯璁や娇鐢ㄥ綋鍓嶆椂鍖哄拰璇█鐜 + Calendar calendar = Calendar.getInstance(); + // 娓呴櫎Calendar涓殑鎵�鏈夊瓧娈靛�硷紝浠ラ伩鍏嶅畠浠褰撳墠鏃ユ湡鏃堕棿鏈夊奖鍝� + calendar.clear(); + // 璁剧疆骞翠唤銆佹湀浠斤紙娉ㄦ剰锛氭湀浠芥槸浠�0寮�濮嬬殑锛屾墍浠�8鏈堟槸7锛夈�佹棩鏈� + calendar.set(Calendar.YEAR, year); + calendar.set(Calendar.MONTH, month); + calendar.set(Calendar.DAY_OF_MONTH, day); + // Calendar.getTime()鏂规硶杩斿洖涓�涓〃绀烘Calendar鏃堕棿鍊肩殑Date瀵硅薄 + Date date = calendar.getTime(); + return date; + } } -- Gitblit v1.8.0