|
|
@@ -0,0 +1,158 @@
|
|
|
+package com.sckw.payment.utils;
|
|
|
+
|
|
|
+
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.LocalTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @description: 时间工具类
|
|
|
+ * @author: LengFaQiang
|
|
|
+ * @copyright
|
|
|
+ * @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 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");
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 当前时间的前一个星期
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String format(LocalDateTime localDateTime) {
|
|
|
+ return YYYY_MM_DD_HH_MM_SS.format(localDateTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从当前日期计算月数差
|
|
|
+ *
|
|
|
+ * @param months 加或减的月数
|
|
|
+ * @return LocalDate
|
|
|
+ */
|
|
|
+ public static LocalDate getComputeMonth(long months) {
|
|
|
+ return getComputeMonth(LocalDate.now(), months);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从给定的日期计算月数差
|
|
|
+ *
|
|
|
+ * @param months 加或减的月数
|
|
|
+ * @param localDate 给定的日期
|
|
|
+ * @return LocalDate
|
|
|
+ */
|
|
|
+ public static LocalDate getComputeMonth(LocalDate localDate, long months) {
|
|
|
+ return localDate.plusMonths(months);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从给定的日期时间计算月数差
|
|
|
+ *
|
|
|
+ * @param months 加或减的月数
|
|
|
+ * @param localDateTime 给定的日期时间
|
|
|
+ * @return LocalDate
|
|
|
+ */
|
|
|
+ public static LocalDateTime getComputeMonth(LocalDateTime localDateTime, long months) {
|
|
|
+ return localDateTime.plusMonths(months);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从当前日期计算月数差
|
|
|
+ *
|
|
|
+ * @param months 加或减的月数
|
|
|
+ * @param offset 偏移的天数 ±1
|
|
|
+ * @return LocalDateTime,时间最小值
|
|
|
+ */
|
|
|
+ public static LocalDateTime getComputeMonthStart(long months, long offset) {
|
|
|
+ return LocalDateTime.of(getComputeMonth(months), LocalTime.MIN).plusDays(offset);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从当前日期计算月数差
|
|
|
+ *
|
|
|
+ * @param months 加或减的月数
|
|
|
+ * @param offset 偏移的天数 ±1
|
|
|
+ * @return LocalDateTime,时间最大值
|
|
|
+ */
|
|
|
+ public static LocalDateTime getComputeMonthEnd(long months, long offset) {
|
|
|
+ return LocalDateTime.of(getComputeMonth(months), LocalTime.MAX).plusDays(offset);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从当前时间,计算天数差
|
|
|
+ *
|
|
|
+ * @param days 加或减的天数
|
|
|
+ * @return LocalDate
|
|
|
+ */
|
|
|
+ public static LocalDate getComputeDays(long days) {
|
|
|
+ return getComputeDays(LocalDate.now(), days);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从给定的日期计算天数差
|
|
|
+ *
|
|
|
+ * @param days 加或减的天数
|
|
|
+ * @param localDate 给定的日期
|
|
|
+ * @return LocalDate
|
|
|
+ */
|
|
|
+ public static LocalDate getComputeDays(LocalDate localDate, long days) {
|
|
|
+ return localDate.plusDays(days);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从给定日期时间计算天数差
|
|
|
+ *
|
|
|
+ * @param days 加或减的天数
|
|
|
+ * @param localDateTime 给定的日期时间
|
|
|
+ * @return LocalDate
|
|
|
+ */
|
|
|
+ public static LocalDateTime getComputeDays(LocalDateTime localDateTime, long days) {
|
|
|
+ return localDateTime.plusDays(days);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从当前时间,计算天数差
|
|
|
+ *
|
|
|
+ * @param days 加或减的天数
|
|
|
+ * @return LocalDateTime,时间最小值
|
|
|
+ */
|
|
|
+ public static LocalDateTime getComputeDaysStart(long days) {
|
|
|
+ return LocalDateTime.of(getComputeDays(days), LocalTime.MIN);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从当前时间,计算天数差
|
|
|
+ *
|
|
|
+ * @param days 加或减的天数
|
|
|
+ * @return LocalDateTime,时间最大值
|
|
|
+ */
|
|
|
+ public static LocalDateTime getComputeDaysEnd(long days) {
|
|
|
+ return LocalDateTime.of(getComputeDays(days), LocalTime.MAX);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 今天开始时间
|
|
|
+ *
|
|
|
+ * @return LocalDateTime yyyy-MM-dd 00:00:00
|
|
|
+ */
|
|
|
+ public static LocalDateTime todayStart() {
|
|
|
+ return LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 今天结束时间
|
|
|
+ *
|
|
|
+ * @return LocalDateTime yyyy-MM-dd 23:59:59
|
|
|
+ */
|
|
|
+ public static LocalDateTime todayEnd() {
|
|
|
+ return LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
|
|
|
+ }
|
|
|
+}
|