diff --git a/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiFunctionUtil.java b/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiFunctionUtil.java index f5bc850..c7b84a6 100644 --- a/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiFunctionUtil.java +++ b/easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiFunctionUtil.java @@ -19,7 +19,10 @@ import java.lang.reflect.Array; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.SimpleDateFormat; +import java.time.format.DateTimeFormatter; +import java.time.temporal.TemporalAccessor; import java.util.Collection; +import java.util.Date; import java.util.Map; import cn.afterturn.easypoi.exception.excel.ExcelExportException; @@ -99,20 +102,15 @@ public final class PoiFunctionUtil { * @return */ public static String formatDate(Object obj, String format) { - if (obj == null || obj.toString() == "") { + if (obj == null || "".equals(obj.toString())) { return ""; } - SimpleDateFormat dateFormat = null; - if (DAY_STR.equals(format)) { - dateFormat = new SimpleDateFormat(DAY_STR); - } else if (TIME_STR.equals(format)) { - dateFormat = new SimpleDateFormat(TIME_STR); - } else if (TIME__NO_S_STR.equals(format)) { - dateFormat = new SimpleDateFormat(TIME__NO_S_STR); - } else { - dateFormat = new SimpleDateFormat(format); + if (obj instanceof Date || obj instanceof Number) { + return new SimpleDateFormat(format).format(obj); + } else if (obj instanceof TemporalAccessor) { + return DateTimeFormatter.ofPattern(format).format((TemporalAccessor) obj); } - return dateFormat.format(obj); + throw new ExcelExportException("暂不支持的时间类型"); } /**