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 035b984c..16aaaf6b 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 @@ -77,7 +77,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; @@ -179,7 +183,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)); + } + } +}