From 9d30f3aba92b1fe90eaecd486113f544f0f18b7c Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 16 八月 2024 16:41:11 +0800 Subject: [PATCH] 资产管理动态字段 --- ycl-server/src/main/java/com/ycl/utils/DateUtils.java | 101 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 97 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..9988e85 100644 --- a/ycl-server/src/main/java/com/ycl/utils/DateUtils.java +++ b/ycl-server/src/main/java/com/ycl/utils/DateUtils.java @@ -2,15 +2,19 @@ import org.apache.commons.lang3.time.DateFormatUtils; +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 +30,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 +46,7 @@ /** * 鑾峰彇褰撳墠鏃ユ湡, 榛樿鏍煎紡涓簓yyy-MM-dd - * + * * @return String */ public static String getDate() @@ -142,6 +146,14 @@ } /** + * 璁$畻鐩稿樊灏忔椂 + */ + public static int differentHoursByMillisecond(Date date1, Date date2) + { + return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600))); + } + + /** * 璁$畻鏃堕棿宸� * * @param endDate 鏈�鍚庢椂闂� @@ -185,4 +197,85 @@ 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); + } + + /** + * 鑾峰彇鏌愭湀寮�濮嬫棩鏈� + */ + public static String getMouthStart(@Nullable Date date) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + 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(); + 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; + } + + } -- Gitblit v1.8.0