poi ExcelUtil 增加对java8 日志类型的支持
This commit is contained in:
		
							parent
							
								
									04706403d3
								
							
						
					
					
						commit
						105c9d99c8
					
				| @ -3,6 +3,7 @@ package com.ruoyi.common.core.utils; | |||||||
| import java.lang.management.ManagementFactory; | import java.lang.management.ManagementFactory; | ||||||
| import java.text.ParseException; | import java.text.ParseException; | ||||||
| import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||||
|  | import java.time.*; | ||||||
| import java.util.Date; | import java.util.Date; | ||||||
| import org.apache.commons.lang3.time.DateFormatUtils; | import org.apache.commons.lang3.time.DateFormatUtils; | ||||||
| 
 | 
 | ||||||
| @ -152,4 +153,23 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils | |||||||
|         // long sec = diff % nd % nh % nm / ns; |         // long sec = diff % nd % nh % nm / ns; | ||||||
|         return day + "天" + hour + "小时" + min + "分钟"; |         return day + "天" + hour + "小时" + min + "分钟"; | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 增加 LocalDateTime ==> Date | ||||||
|  |      */ | ||||||
|  |     public static Date toDate(LocalDateTime temporalAccessor) | ||||||
|  |     { | ||||||
|  |         ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault()); | ||||||
|  |         return Date.from(zdt.toInstant()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 增加 LocalDate ==> Date | ||||||
|  |      */ | ||||||
|  |     public static Date toDate(LocalDate temporalAccessor) | ||||||
|  |     { | ||||||
|  |         LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0)); | ||||||
|  |         ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); | ||||||
|  |         return Date.from(zdt.toInstant()); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -6,6 +6,8 @@ import java.lang.reflect.Field; | |||||||
| import java.lang.reflect.Method; | import java.lang.reflect.Method; | ||||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||||
| import java.text.DecimalFormat; | import java.text.DecimalFormat; | ||||||
|  | import java.time.LocalDate; | ||||||
|  | import java.time.LocalDateTime; | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Arrays; | import java.util.Arrays; | ||||||
| import java.util.Comparator; | import java.util.Comparator; | ||||||
| @ -282,7 +284,7 @@ public class ExcelUtil<T> | |||||||
|                             String dateFormat = field.getAnnotation(Excel.class).dateFormat(); |                             String dateFormat = field.getAnnotation(Excel.class).dateFormat(); | ||||||
|                             if (StringUtils.isNotEmpty(dateFormat)) |                             if (StringUtils.isNotEmpty(dateFormat)) | ||||||
|                             { |                             { | ||||||
|                                 val = DateUtils.parseDateToStr(dateFormat, (Date) val); |                                 val = this.parseDateToStr(dateFormat, (Date) val); | ||||||
|                             } |                             } | ||||||
|                             else |                             else | ||||||
|                             { |                             { | ||||||
| @ -701,7 +703,7 @@ public class ExcelUtil<T> | |||||||
|                 String separator = attr.separator(); |                 String separator = attr.separator(); | ||||||
|                 if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) |                 if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) | ||||||
|                 { |                 { | ||||||
|                     cell.setCellValue(DateUtils.parseDateToStr(dateFormat, (Date) value)); |                     cell.setCellValue(this.parseDateToStr(dateFormat, (Date) value)); | ||||||
|                 } |                 } | ||||||
|                 else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) |                 else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) | ||||||
|                 { |                 { | ||||||
| @ -1154,4 +1156,29 @@ public class ExcelUtil<T> | |||||||
|         } |         } | ||||||
|         return true; |         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; | ||||||
|  |     } | ||||||
| } | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 duandazhi
						duandazhi