Explorar o código

时间工具类拓展

xucaiqin %!s(int64=2) %!d(string=hai) anos
pai
achega
d930c4bd31

+ 50 - 5
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/utils/DateTimeUtil.java

@@ -13,13 +13,14 @@ import java.time.format.DateTimeFormatter;
  * @create: 2022-01-27 16:04
  **/
 public class DateTimeUtil {
-    public static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";
-    public static final DateTimeFormatter YYYY_MM_DD_HH_MM_SS = DateTimeFormatter.ofPattern(DEFAULT_PATTERN);
+    public static final String YMD = "yyyy-MM-dd";
+    public static final String HMS = "HH:mm:ss";
+    public static final DateTimeFormatter YYYY_MM_DD_HH_MM_SS = DateTimeFormatter.ofPattern(YMD + " " + HMS);
     public static final DateTimeFormatter YYYYMMDDHHMMSS = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
-    public static final DateTimeFormatter YYYY_MM_DD = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-    public static final DateTimeFormatter HH_MM_SS = DateTimeFormatter.ofPattern("HH:mm:ss");
-    
+    public static final DateTimeFormatter YYYY_MM_DD = DateTimeFormatter.ofPattern(YMD);
+    public static final DateTimeFormatter HH_MM_SS = DateTimeFormatter.ofPattern(HMS);
 
+    /*格式化*/
 
     /**
      * 当前时间的前一个星期
@@ -30,6 +31,15 @@ public class DateTimeUtil {
         return YYYY_MM_DD_HH_MM_SS.format(localDateTime);
     }
 
+    public static String formatYMD(LocalDate localDate) {
+        return YYYY_MM_DD.format(localDate);
+    }
+
+    public static String formatYMD(LocalDateTime localDateTime) {
+        return YYYY_MM_DD.format(localDateTime);
+    }
+    /*月差计算*/
+
     /**
      * 从当前日期计算月数差
      *
@@ -40,6 +50,24 @@ public class DateTimeUtil {
         return getComputeMonth(LocalDate.now(), months);
     }
 
+    /**
+     * 从当前日期计算月数差
+     *
+     * @param months 加或减的月数
+     * @return yyyy-MM-dd
+     */
+    public static String getComputeMonthStr(long months) {
+        return formatYMD(getComputeMonth(months));
+    }
+
+    public static String getComputeMonthStartDay(long months) {
+        return formatYMD(getComputeMonth(months));
+    }
+
+    public static String getComputeMonthEndDay(long months) {
+        return formatYMD(getComputeMonth(months));
+    }
+
     /**
      * 从给定的日期计算月数差
      *
@@ -84,6 +112,17 @@ public class DateTimeUtil {
     public static LocalDateTime getComputeMonthEnd(long months, long offset) {
         return LocalDateTime.of(getComputeMonth(months), LocalTime.MAX).plusDays(offset);
     }
+    /*天差计算*/
+
+    /**
+     * 从当前时间,计算天数差
+     *
+     * @param days 加或减的天数
+     * @return yyyy-MM-dd
+     */
+    public static String getComputeDaysStr(long days) {
+        return formatYMD(getComputeDays(days));
+    }
 
     /**
      * 从当前时间,计算天数差
@@ -155,4 +194,10 @@ public class DateTimeUtil {
     public static LocalDateTime todayEnd() {
         return LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
     }
+
+    public static void main(String[] args) {
+
+        System.out.println(getComputeDaysStr(0));
+        System.out.println(getComputeMonthStart(1, 0));
+    }
 }