DateUtil.java 15.3 KB
Newer Older
liqin's avatar
liqin committed
1 2
package cn.wisenergy.chnmuseum.party.common.util;

liqin's avatar
liqin committed
3 4 5 6 7 8 9 10 11 12 13
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;

/**
 * 日期工具类 - 基于LocalDateTime
 */
liqin's avatar
liqin committed
14 15 16 17 18
public class DateUtil {

    // 格式:年-月-日 小时:分钟:秒
    public static final String FORMAT_ONE = "yyyy-MM-dd HH:mm:ss";

liqin's avatar
liqin committed
19
    public static final String FORMAT_T = "yyyy-MM-dd'T'HH:mm:ss";
liqin's avatar
liqin committed
20 21 22 23 24 25 26 27 28 29 30 31 32

    // 格式:年-月-日 小时:分钟
    public static final String FORMAT_TWO = "yyyy-MM-dd HH:mm";

    // 格式:年-月-日
    public static final String LONG_DATE_FORMAT = "yyyy-MM-dd";

    // 格式:月-日
    public static final String SHORT_DATE_FORMAT = "MM-dd";

    // 格式:小时:分钟:秒
    public static final String LONG_TIME_FORMAT = "HH:mm:ss";

liqin's avatar
liqin committed
33 34 35
    // 格式:小时:分钟:秒
    public static final String SHORT_TIME_FORMAT = "HH:mm";

liqin's avatar
liqin committed
36 37 38
    // 格式:年-月
    public static final String MONTG_DATE_FORMAT = "yyyy-MM";

liqin's avatar
liqin committed
39 40
    // 格式:年-月
    public static final String Chinese_DATE_FORMAT = "yyyy年MM月dd日 HH:mm";
liqin's avatar
liqin committed
41

liqin's avatar
liqin committed
42
    private static final ConcurrentMap<String, DateTimeFormatter> FORMATTER_CACHE = new ConcurrentHashMap<>();
liqin's avatar
liqin committed
43

liqin's avatar
liqin committed
44
    private static final int PATTERN_CACHE_SIZE = 500;
liqin's avatar
liqin committed
45 46

    /**
liqin's avatar
liqin committed
47
     * Date转换为格式化时间
liqin's avatar
liqin committed
48
     *
liqin's avatar
liqin committed
49 50
     * @param date    date
     * @param pattern 格式
liqin's avatar
liqin committed
51 52
     * @return
     */
liqin's avatar
liqin committed
53 54
    public static String format(Date date, String pattern) {
        return format(LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()), pattern);
liqin's avatar
liqin committed
55 56 57
    }

    /**
liqin's avatar
liqin committed
58
     * localDateTime转换为格式化时间
liqin's avatar
liqin committed
59
     *
liqin's avatar
liqin committed
60 61
     * @param localDateTime localDateTime
     * @param pattern       格式
liqin's avatar
liqin committed
62 63
     * @return
     */
liqin's avatar
liqin committed
64 65 66
    public static String format(LocalDateTime localDateTime, String pattern) {
        DateTimeFormatter formatter = createCacheFormatter(pattern);
        return localDateTime.format(formatter);
liqin's avatar
liqin committed
67 68 69
    }

    /**
liqin's avatar
liqin committed
70
     * localDateTime转换为格式化时间
liqin's avatar
liqin committed
71
     *
liqin's avatar
liqin committed
72
     * @param localDateTime localDateTime
liqin's avatar
liqin committed
73 74
     * @return
     */
liqin's avatar
liqin committed
75 76 77
    public static String format(LocalDateTime localDateTime) {
        DateTimeFormatter formatter = createCacheFormatter(FORMAT_ONE);
        return localDateTime.format(formatter);
liqin's avatar
liqin committed
78 79 80
    }

    /**
liqin's avatar
liqin committed
81
     * 格式化字符串转为Date
liqin's avatar
liqin committed
82
     *
liqin's avatar
liqin committed
83 84
     * @param time    格式化时间
     * @param pattern 格式
liqin's avatar
liqin committed
85 86
     * @return
     */
liqin's avatar
liqin committed
87 88
    public static Date parseDate(String time, String pattern) {
        return Date.from(parseLocalDateTime(time, pattern).atZone(ZoneId.systemDefault()).toInstant());
liqin's avatar
liqin committed
89 90 91 92

    }

    /**
liqin's avatar
liqin committed
93
     * 格式化字符串转为LocalDateTime
liqin's avatar
liqin committed
94
     *
liqin's avatar
liqin committed
95 96 97
     * @param time    格式化时间
     * @param pattern 格式
     * @return
liqin's avatar
liqin committed
98
     */
liqin's avatar
liqin committed
99 100 101
    public static LocalDateTime parseLocalDateTime(String time, String pattern) {
        DateTimeFormatter formatter = createCacheFormatter(pattern);
        return LocalDateTime.parse(time, formatter);
liqin's avatar
liqin committed
102 103 104
    }

    /**
liqin's avatar
liqin committed
105
     * 格式化字符串转为LocalDateTime
liqin's avatar
liqin committed
106
     *
liqin's avatar
liqin committed
107 108 109
     * @param time    格式化时间
     * @param pattern 格式
     * @return localDateTime
liqin's avatar
liqin committed
110
     */
liqin's avatar
liqin committed
111 112 113
    public static LocalDateTime transferLocalDateTime(String time, String pattern) {
        DateTimeFormatter formatter = createCacheFormatter(pattern);
        return LocalDate.parse(time, formatter).atStartOfDay();
liqin's avatar
liqin committed
114 115 116
    }

    /**
liqin's avatar
liqin committed
117
     * java.util.Date --> java.time.LocalDateTime
liqin's avatar
liqin committed
118
     */
liqin's avatar
liqin committed
119 120 121 122
    public static LocalDateTime UDateToLocalDateTime(Date date) {
        Instant instant = date.toInstant();
        ZoneId zone = ZoneId.systemDefault();
        return LocalDateTime.ofInstant(instant, zone);
liqin's avatar
liqin committed
123 124 125
    }

    /**
liqin's avatar
liqin committed
126
     * 将LocalDateTime转为自定义的时间格式的字符串
liqin's avatar
liqin committed
127
     *
liqin's avatar
liqin committed
128 129 130
     * @param localDateTime
     * @param format
     * @return
liqin's avatar
liqin committed
131
     */
liqin's avatar
liqin committed
132 133 134
    public static String getDateTimeAsString(LocalDateTime localDateTime, String format) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
        return localDateTime.format(formatter);
liqin's avatar
liqin committed
135 136 137
    }

    /**
liqin's avatar
liqin committed
138
     * 将long类型的timestamp转为LocalDateTime
liqin's avatar
liqin committed
139
     *
liqin's avatar
liqin committed
140 141
     * @param timestamp
     * @return
liqin's avatar
liqin committed
142
     */
liqin's avatar
liqin committed
143 144 145 146
    public static LocalDateTime getDateTimeOfTimestamp(long timestamp) {
        Instant instant = Instant.ofEpochMilli(timestamp);
        ZoneId zone = ZoneId.systemDefault();
        return LocalDateTime.ofInstant(instant, zone);
liqin's avatar
liqin committed
147 148 149
    }

    /**
liqin's avatar
liqin committed
150
     * 将LocalDateTime转为long类型的timestamp
liqin's avatar
liqin committed
151
     *
liqin's avatar
liqin committed
152 153
     * @param localDateTime
     * @return
liqin's avatar
liqin committed
154
     */
liqin's avatar
liqin committed
155 156 157 158
    public static long getTimestampOfDateTime(LocalDateTime localDateTime) {
        ZoneId zone = ZoneId.systemDefault();
        Instant instant = localDateTime.atZone(zone).toInstant();
        return instant.toEpochMilli();
liqin's avatar
liqin committed
159 160 161
    }

    /**
liqin's avatar
liqin committed
162
     * 将某时间字符串转为自定义时间格式的LocalDateTime
liqin's avatar
liqin committed
163
     *
liqin's avatar
liqin committed
164 165 166
     * @param time
     * @param format
     * @return
liqin's avatar
liqin committed
167
     */
liqin's avatar
liqin committed
168 169 170
    public static LocalDateTime parseStringToDateTime(String time, String format) {
        DateTimeFormatter df = DateTimeFormatter.ofPattern(format, Locale.getDefault());
        return LocalDateTime.parse(time, df);
liqin's avatar
liqin committed
171 172 173
    }

    /**
liqin's avatar
liqin committed
174
     * 计算两个日期之间相差的时间
liqin's avatar
liqin committed
175
     *
liqin's avatar
liqin committed
176 177 178
     * @param startDate 较小的时间
     * @param endDate   较大的时间
     * @return 相差结果 X天X小时X分钟X秒
liqin's avatar
liqin committed
179
     */
liqin's avatar
liqin committed
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
    public static String differenceTimeStr(Date startDate, Date endDate) {
        // 计算时间差
        long between = endDate.toInstant().toEpochMilli() - startDate.toInstant().toEpochMilli();
        if (between < 0) {
            return "-1";
        }
        long day = between / (1000 * 3600 * 24);    // 天
        long hour = (between / (60 * 60 * 1000) - day * 24);    // 小时
        long min = ((between / (60 * 1000)) - day * 24 * 60 - hour * 60);   // 分钟
        long sec = (between / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);   // 秒

        StringBuilder sb = new StringBuilder();
        if (0 != day) {
            sb.append(day);
            sb.append("天");
        }
        if (0 != hour) {
            sb.append(hour);
            sb.append("小时");
        }
        if (0 != min) {
            sb.append(min);
            sb.append("分");
        }
        sb.append(sec);
        sb.append("秒");
        return String.valueOf(sb);
liqin's avatar
liqin committed
207 208 209
    }

    /**
liqin's avatar
liqin committed
210
     * 时间戳转时间【毫秒】
liqin's avatar
liqin committed
211
     *
liqin's avatar
liqin committed
212 213 214
     * @param timeStamp 时间戳【毫秒】
     * @param pattern   格式化参数
     * @return 格式化后的时间
liqin's avatar
liqin committed
215
     */
liqin's avatar
liqin committed
216 217 218 219 220
    public static String msTimeStampConvertTime(long timeStamp, String pattern) {
        Instant instant = Instant.ofEpochMilli(timeStamp);
        ZoneId zone = ZoneId.systemDefault();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        return LocalDateTime.ofInstant(instant, zone).format(formatter);
liqin's avatar
liqin committed
221 222 223
    }

    /**
liqin's avatar
liqin committed
224
     * 时间戳转时间【秒】
liqin's avatar
liqin committed
225
     *
liqin's avatar
liqin committed
226 227 228
     * @param timeStamp 时间戳【秒】
     * @param pattern   格式化参数
     * @return 格式化后的时间
liqin's avatar
liqin committed
229
     */
liqin's avatar
liqin committed
230 231 232 233 234
    public static String secondsTimeStampConvertTime(long timeStamp, String pattern) {
        Instant instant = Instant.ofEpochSecond(timeStamp);
        ZoneId zone = ZoneId.systemDefault();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        return LocalDateTime.ofInstant(instant, zone).format(formatter);
liqin's avatar
liqin committed
235 236 237
    }

    /**
liqin's avatar
liqin committed
238
     * 将某时间字符串转为自定义时间格式的LocalDate
liqin's avatar
liqin committed
239
     *
liqin's avatar
liqin committed
240 241
     * @param time
     * @param format
liqin's avatar
liqin committed
242 243
     * @return
     */
liqin's avatar
liqin committed
244 245 246
    public static LocalDate parseStringToDate(String time, String format) {
        DateTimeFormatter df = DateTimeFormatter.ofPattern(format, Locale.getDefault());
        return LocalDate.parse(time, df);
liqin's avatar
liqin committed
247 248 249
    }

    /**
liqin's avatar
liqin committed
250
     * 将某时间字符串转为自定义时间格式的LocalDate
liqin's avatar
liqin committed
251
     *
liqin's avatar
liqin committed
252 253
     * @param time
     * @param format
liqin's avatar
liqin committed
254 255
     * @return
     */
liqin's avatar
liqin committed
256 257 258
    public static LocalTime parseStringToTime(String time, String format) {
        DateTimeFormatter df = DateTimeFormatter.ofPattern(format, Locale.getDefault());
        return LocalTime.parse(time, df);
liqin's avatar
liqin committed
259 260 261
    }

    /**
liqin's avatar
liqin committed
262
     * 在缓存中创建DateTimeFormatter
liqin's avatar
liqin committed
263
     *
liqin's avatar
liqin committed
264
     * @param pattern 格式
liqin's avatar
liqin committed
265 266
     * @return
     */
liqin's avatar
liqin committed
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281
    private static DateTimeFormatter createCacheFormatter(String pattern) {
        if (pattern == null || pattern.length() == 0) {
            throw new IllegalArgumentException("Invalid pattern specification");
        }
        DateTimeFormatter formatter = FORMATTER_CACHE.get(pattern);
        if (formatter == null) {
            if (FORMATTER_CACHE.size() < PATTERN_CACHE_SIZE) {
                formatter = DateTimeFormatter.ofPattern(pattern);
                DateTimeFormatter oldFormatter = FORMATTER_CACHE.putIfAbsent(pattern, formatter);
                if (oldFormatter != null) {
                    formatter = oldFormatter;
                }
            }
        }
        return formatter;
liqin's avatar
liqin committed
282 283 284
    }

    /**
liqin's avatar
liqin committed
285
     * 获取某个时间段的开始时间
liqin's avatar
liqin committed
286
     *
liqin's avatar
liqin committed
287
     * @param offset 0今天,1明天,-1昨天,依次类推
liqin's avatar
liqin committed
288 289
     * @return
     */
liqin's avatar
liqin committed
290 291
    public static LocalDateTime minuteStart(int offset) {
        return LocalDateTime.now().plusMinutes(offset).withSecond(0).withNano(0);
liqin's avatar
liqin committed
292 293 294
    }

    /**
liqin's avatar
liqin committed
295
     * 获取某个时间段的开始时间
liqin's avatar
liqin committed
296
     *
liqin's avatar
liqin committed
297
     * @param offset 0今天,1明天,-1昨天,依次类推
liqin's avatar
liqin committed
298 299
     * @return
     */
liqin's avatar
liqin committed
300 301
    public static LocalDateTime minuteEnd(int offset) {
        return LocalDateTime.now().plusMinutes(offset).withSecond(59).withNano(999999999);
liqin's avatar
liqin committed
302 303 304
    }

    /**
liqin's avatar
liqin committed
305
     * 获取某个时间段的开始时间
liqin's avatar
liqin committed
306
     *
liqin's avatar
liqin committed
307
     * @param offset 0今天,1明天,-1昨天,依次类推
liqin's avatar
liqin committed
308 309
     * @return
     */
liqin's avatar
liqin committed
310 311
    public static LocalDateTime hourStart(int offset) {
        return LocalDateTime.now().plusHours(offset).withMinute(0).withSecond(0).withNano(0);
liqin's avatar
liqin committed
312 313 314
    }

    /**
liqin's avatar
liqin committed
315
     * 获取某个时间段的结束时间
liqin's avatar
liqin committed
316
     *
liqin's avatar
liqin committed
317
     * @param offset 0今天,1明天,-1昨天,依次类推
liqin's avatar
liqin committed
318 319
     * @return
     */
liqin's avatar
liqin committed
320 321 322 323
    public static LocalDateTime hourEnd(int offset) {
        return LocalDateTime.now().plusHours(offset).withMinute(59)
                .withSecond(59)
                .withNano(999999999);
liqin's avatar
liqin committed
324 325 326
    }

    /**
liqin's avatar
liqin committed
327
     * 获取某天的开始日期
liqin's avatar
liqin committed
328
     *
liqin's avatar
liqin committed
329
     * @param offset 0今天,1明天,-1昨天,依次类推
liqin's avatar
liqin committed
330 331
     * @return
     */
liqin's avatar
liqin committed
332 333
    public static LocalDateTime dayStart(int offset) {
        return LocalDate.now().plusDays(offset).atStartOfDay();
liqin's avatar
liqin committed
334 335 336
    }

    /**
liqin's avatar
liqin committed
337
     * 获取日期的结束时间
liqin's avatar
liqin committed
338
     */
liqin's avatar
liqin committed
339 340 341 342 343
    public static LocalDateTime getDayStart(int offset) {
        return LocalDateTime.now().plusDays(offset).withHour(0)
                .withMinute(0)
                .withSecond(0)
                .withNano(0);
liqin's avatar
liqin committed
344 345 346
    }

    /**
liqin's avatar
liqin committed
347
     * 获取某天的开始日期
liqin's avatar
liqin committed
348
     *
liqin's avatar
liqin committed
349
     * @param offset 0今天,1明天,-1昨天,依次类推
liqin's avatar
liqin committed
350 351
     * @return
     */
liqin's avatar
liqin committed
352 353
    public static LocalDateTime dayEnd(int offset) {
        return LocalDateTime.of(LocalDate.now().plusDays(offset), LocalTime.MAX);//当天零点
liqin's avatar
liqin committed
354 355 356
    }

    /**
liqin's avatar
liqin committed
357
     * 获取日期的结束时间
liqin's avatar
liqin committed
358
     */
liqin's avatar
liqin committed
359 360 361 362 363
    public static LocalDateTime getDayEnd(int offset) {
        return LocalDateTime.now().plusDays(offset).withHour(23)
                .withMinute(59)
                .withSecond(59)
                .withNano(999999999);
liqin's avatar
liqin committed
364 365 366
    }

    /**
liqin's avatar
liqin committed
367
     * 获取此刻与相对当天第day天的起始时间相隔的秒数。day为0表示今天的起始时间;1明天,2后天,-1昨天,-2前天等,依次例推。
liqin's avatar
liqin committed
368
     *
liqin's avatar
liqin committed
369
     * @param day
liqin's avatar
liqin committed
370 371
     * @return
     */
liqin's avatar
liqin committed
372 373 374 375
    public static int ttl(int day) {
        LocalDateTime now = LocalDateTime.now();
        LocalDateTime time = LocalDate.now().plusDays(day).atStartOfDay();
        return (int) Duration.between(now, time).toMillis() / 1000;
liqin's avatar
liqin committed
376 377 378
    }

    /**
liqin's avatar
liqin committed
379
     * 获取某周的开始日期
liqin's avatar
liqin committed
380
     *
liqin's avatar
liqin committed
381
     * @param offset 0本周,1下周,-1上周,依次类推
liqin's avatar
liqin committed
382 383
     * @return
     */
liqin's avatar
liqin committed
384 385
    public static LocalDateTime weekStart(int offset) {
        return LocalDateTime.now().plusWeeks(offset).with(DayOfWeek.MONDAY);
liqin's avatar
liqin committed
386 387 388
    }

    /**
liqin's avatar
liqin committed
389
     * 获取某周的开始日期
liqin's avatar
liqin committed
390
     *
liqin's avatar
liqin committed
391
     * @param offset 0本周,1下周,-1上周,依次类推
liqin's avatar
liqin committed
392 393
     * @return
     */
liqin's avatar
liqin committed
394 395
    public static LocalDateTime weekEnd(int offset) {
        return LocalDateTime.now().plusWeeks(offset).with(DayOfWeek.SUNDAY);
liqin's avatar
liqin committed
396 397 398
    }

    /**
liqin's avatar
liqin committed
399
     * 获取某月的开始日期
liqin's avatar
liqin committed
400
     *
liqin's avatar
liqin committed
401
     * @param offset 0本月,1下个月,-1上个月,依次类推
liqin's avatar
liqin committed
402 403
     * @return
     */
liqin's avatar
liqin committed
404 405
    public static LocalDateTime monthStart(int offset) {
        return LocalDateTime.now().plusMonths(offset).with(TemporalAdjusters.firstDayOfMonth()).withHour(0).withMinute(0).withSecond(0);
liqin's avatar
liqin committed
406 407 408
    }

    /**
liqin's avatar
liqin committed
409
     * 获取某月的结束日期
liqin's avatar
liqin committed
410
     *
liqin's avatar
liqin committed
411
     * @param offset 0本月,1下个月,-1上个月,依次类推
liqin's avatar
liqin committed
412 413
     * @return
     */
liqin's avatar
liqin committed
414 415
    public static LocalDateTime monthEnd(int offset) {
        return LocalDateTime.now().plusMonths(offset).with(TemporalAdjusters.lastDayOfMonth()).withHour(23).withMinute(59).withSecond(59).withNano(999999999);
liqin's avatar
liqin committed
416 417 418
    }

    /**
liqin's avatar
liqin committed
419 420
     * 获取某季度的开始日期
     * 季度一年四季, 第一季度:2月-4月, 第二季度:5月-7月, 第三季度:8月-10月, 第四季度:11月-1月
liqin's avatar
liqin committed
421
     *
liqin's avatar
liqin committed
422
     * @param offset 0本季度,1下个季度,-1上个季度,依次类推
liqin's avatar
liqin committed
423 424
     * @return
     */
liqin's avatar
liqin committed
425 426 427 428 429 430 431 432 433 434 435 436 437 438 439
    public static LocalDate quarterStart(int offset) {
        final LocalDate date = LocalDate.now().plusMonths(offset * 3);
        int month = date.getMonth().getValue();//当月
        int start = 0;
        if (month >= 2 && month <= 4) {//第一季度
            start = 2;
        } else if (month >= 5 && month <= 7) {//第二季度
            start = 5;
        } else if (month >= 8 && month <= 10) {//第三季度
            start = 8;
        } else if (month >= 11) {//第四季度
            start = 11;
        } else {//第四季度
            start = 11;
            month = 13;
liqin's avatar
liqin committed
440
        }
liqin's avatar
liqin committed
441
        return date.plusMonths(start - month).with(TemporalAdjusters.firstDayOfMonth());
liqin's avatar
liqin committed
442 443 444
    }

    /**
liqin's avatar
liqin committed
445
     * 获取某年的开始日期
liqin's avatar
liqin committed
446
     *
liqin's avatar
liqin committed
447
     * @param offset 0今年,1明年,-1去年,依次类推
liqin's avatar
liqin committed
448 449
     * @return
     */
liqin's avatar
liqin committed
450 451
    public static LocalDateTime yearStart(int offset) {
        return LocalDateTime.now().plusYears(offset).with(TemporalAdjusters.firstDayOfYear());
liqin's avatar
liqin committed
452 453 454
    }

    /**
liqin's avatar
liqin committed
455
     * 获取某年的结束日期
liqin's avatar
liqin committed
456
     *
liqin's avatar
liqin committed
457
     * @param offset 0今年,1明年,-1去年,依次类推
liqin's avatar
liqin committed
458 459
     * @return
     */
liqin's avatar
liqin committed
460 461
    public static LocalDateTime yearEnd(int offset) {
        return LocalDateTime.now().plusYears(offset).with(TemporalAdjusters.lastDayOfYear());
liqin's avatar
liqin committed
462 463 464
    }

    /**
liqin's avatar
liqin committed
465
     * 计算两个时间相差天数
liqin's avatar
liqin committed
466
     *
liqin's avatar
liqin committed
467 468 469
     * @param day1 时间1
     * @param day2 时间2
     * @return 相差天数
liqin's avatar
liqin committed
470
     */
liqin's avatar
liqin committed
471 472
    public static long intervalDay(LocalDateTime day1, LocalDateTime day2) {
        return Duration.between(day1, day2).toDays();
liqin's avatar
liqin committed
473 474 475
    }

    /**
liqin's avatar
liqin committed
476
     * 计算两个时间相差天数
liqin's avatar
liqin committed
477
     *
liqin's avatar
liqin committed
478 479 480 481
     * @param day1   格式化的时间1
     * @param day2   格式化的时间2
     * @param format 格式化参数
     * @return 相差天数
liqin's avatar
liqin committed
482
     */
liqin's avatar
liqin committed
483 484
    public static long intervalDay(String day1, String day2, String format) {
        return intervalDay(transferLocalDateTime(day1, format), transferLocalDateTime(day2, format));
liqin's avatar
liqin committed
485 486 487
    }

    /**
liqin's avatar
liqin committed
488
     * 获取当前日期
liqin's avatar
liqin committed
489
     *
liqin's avatar
liqin committed
490 491
     * @param format 格式化参数
     * @return 格式化后的日期
liqin's avatar
liqin committed
492
     */
liqin's avatar
liqin committed
493 494
    public static String getCurrentDate(String format) {
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(format));
liqin's avatar
liqin committed
495 496
    }
}