@ -6,6 +6,8 @@ import java.lang.reflect.Field;
@@ -6,6 +6,8 @@ import java.lang.reflect.Field;
import java.lang.reflect.Method ;
import java.math.BigDecimal ;
import java.text.DecimalFormat ;
import java.time.LocalDate ;
import java.time.LocalDateTime ;
import java.util.ArrayList ;
import java.util.Arrays ;
import java.util.Comparator ;
@ -282,7 +284,7 @@ public class ExcelUtil<T>
@@ -282,7 +284,7 @@ public class ExcelUtil<T>
String dateFormat = field . getAnnotation ( Excel . class ) . dateFormat ( ) ;
if ( StringUtils . isNotEmpty ( dateFormat ) )
{
val = DateUtil s. parseDateToStr ( dateFormat , ( Date ) val ) ;
val = thi s. parseDateToStr ( dateFormat , ( Date ) val ) ;
}
else
{
@ -701,7 +703,7 @@ public class ExcelUtil<T>
@@ -701,7 +703,7 @@ public class ExcelUtil<T>
String separator = attr . separator ( ) ;
if ( StringUtils . isNotEmpty ( dateFormat ) & & StringUtils . isNotNull ( value ) )
{
cell . setCellValue ( DateUtil s. parseDateToStr ( dateFormat , ( Date ) value ) ) ;
cell . setCellValue ( thi s. parseDateToStr ( dateFormat , ( Date ) value ) ) ;
}
else if ( StringUtils . isNotEmpty ( readConverterExp ) & & StringUtils . isNotNull ( value ) )
{
@ -1154,4 +1156,29 @@ public class ExcelUtil<T>
@@ -1154,4 +1156,29 @@ public class ExcelUtil<T>
}
return true ;
}
/ * *
* 增加ExcelUtil对java8 日期的支持
* 格式化日期 , 日期可能是 : { @link Date } 、 { @link LocalDateTime } 、 { @link LocalDate } 其他日期暂不支持
* @param dateFormat 日期格式
* @param val 被格式化的日期对象
* @see DateUtils # parseDateToStr ( String , Date )
* /
private String parseDateToStr ( final String dateFormat , Object val )
{
if ( val = = null ) {
return "" ;
}
String str ;
if ( val instanceof Date ) {
str = DateUtils . parseDateToStr ( dateFormat , ( Date ) val ) ;
} else if ( val instanceof LocalDateTime ) {
str = DateUtils . parseDateToStr ( dateFormat , DateUtils . toDate ( ( LocalDateTime ) val ) ) ;
} else if ( val instanceof LocalDate ) {
str = DateUtils . parseDateToStr ( dateFormat , DateUtils . toDate ( ( LocalDate ) val ) ) ;
} else {
str = val . toString ( ) ;
}
return str ;
}
}