From a5c57300bd435f3a029e522c67589e9cec986c5d Mon Sep 17 00:00:00 2001 From: lonecloud Date: Fri, 12 May 2023 13:35:08 +0800 Subject: [PATCH] * Date supports conversion to yyyy/M/d HH:mm:ss format --- .../com/alibaba/excel/util/DateUtils.java | 9 ++++ .../easyexcel/test/util/DateUtilTest.java | 47 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 easyexcel-test/src/test/java/com/alibaba/easyexcel/test/util/DateUtilTest.java diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/util/DateUtils.java b/easyexcel-core/src/main/java/com/alibaba/excel/util/DateUtils.java index cab7e4d0..fff7b509 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/util/DateUtils.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/util/DateUtils.java @@ -57,7 +57,11 @@ public class DateUtils { public static final String DATE_FORMAT_17 = "yyyyMMdd HH:mm:ss"; public static final String DATE_FORMAT_19 = "yyyy-MM-dd HH:mm:ss"; public static final String DATE_FORMAT_19_FORWARD_SLASH = "yyyy/MM/dd HH:mm:ss"; + public static final String DATE_FORMAT_SIMPLE_SLASH = "yyyy/M/d HH:mm:ss"; + private static final String MINUS = "-"; + private static final String SLASH = "/"; + public static String defaultDateFormat = DATE_FORMAT_19; @@ -150,7 +154,12 @@ public class DateUtils { } else { return DATE_FORMAT_16_FORWARD_SLASH; } + case 18: + return DATE_FORMAT_SIMPLE_SLASH; case 17: + if (dateString.contains(SLASH)) { + return DATE_FORMAT_SIMPLE_SLASH; + } return DATE_FORMAT_17; case 14: return DATE_FORMAT_14; diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/util/DateUtilTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/util/DateUtilTest.java new file mode 100644 index 00000000..88002eac --- /dev/null +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/util/DateUtilTest.java @@ -0,0 +1,47 @@ +package com.alibaba.easyexcel.test.util; + + +import com.alibaba.excel.util.DateUtils; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static com.alibaba.excel.util.DateUtils.DATE_FORMAT_10; +import static com.alibaba.excel.util.DateUtils.DATE_FORMAT_14; +import static com.alibaba.excel.util.DateUtils.DATE_FORMAT_16; +import static com.alibaba.excel.util.DateUtils.DATE_FORMAT_16_FORWARD_SLASH; +import static com.alibaba.excel.util.DateUtils.DATE_FORMAT_17; +import static com.alibaba.excel.util.DateUtils.DATE_FORMAT_19; +import static com.alibaba.excel.util.DateUtils.DATE_FORMAT_19_FORWARD_SLASH; +import static com.alibaba.excel.util.DateUtils.DATE_FORMAT_SIMPLE_SLASH; +/** + * @author lonecloud + */ +public class DateUtilTest { + + LocalDateTime testTime = LocalDateTime.of(2023, 1, 1, 1, 1, 1); + + LocalDateTime testTime2 = LocalDateTime.of(2023, 10, 1, 1, 1, 1); + LocalDateTime testTime3 = LocalDateTime.of(2023, 1, 10, 1, 1, 1); + + public String[] patternTest = {DATE_FORMAT_10, DATE_FORMAT_14, DATE_FORMAT_16, DATE_FORMAT_16_FORWARD_SLASH, DATE_FORMAT_17, DATE_FORMAT_19, DATE_FORMAT_19_FORWARD_SLASH, DATE_FORMAT_SIMPLE_SLASH}; + + @Test + public void switchDateFormatTest() { + for (String pattern : patternTest) { + String format = testTime.format(DateTimeFormatter.ofPattern(pattern)); + Assertions.assertEquals(pattern, DateUtils.switchDateFormat(format)); + } + for (String pattern : patternTest) { + String format = testTime2.format(DateTimeFormatter.ofPattern(pattern)); + Assertions.assertEquals(pattern, DateUtils.switchDateFormat(format)); + } + for (String pattern : patternTest) { + String format = testTime3.format(DateTimeFormatter.ofPattern(pattern)); + Assertions.assertEquals(pattern, DateUtils.switchDateFormat(format)); + } + } +}