easyexcel 时间转换
生活随笔
收集整理的這篇文章主要介紹了
easyexcel 时间转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉換器:
package com.leadtrans.report.config;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.CellData;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
/**
* @author: Tyler
* @createDate: 2021/12/9
*/
public class ConverterDateTime implements Converter<LocalDate> {
@Override
public Class<?> supportJavaTypeKey() {
return LocalDateTime.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public LocalDate convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
if(cellData.getNumberValue()==null)
return null;
BigDecimal numberValue = cellData.getNumberValue();
System.out.println("numberValue:"+numberValue);
long second = numberValue.multiply(new BigDecimal("86400")).longValue();
System.out.println("second:"+second);
Instant instant = Instant.ofEpochSecond(second-2209190400L);
return LocalDate.ofInstant(instant, ZoneId.systemDefault());
}
@Override
public WriteCellData<?> convertToExcelData(LocalDate value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new WriteCellData(value.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
}
model
@ExcelProperty(value = "ATD",converter = ConverterDateTime.class)
private LocalDate ATD;//實際裝貨
@ExcelProperty(value = "ATA",converter = ConverterDateTime.class)
private LocalDate ATA;//實際卸貨
PS: excel中的單元格 , 不能是文本類型。
否則需要修改轉換器中cellData.getNumberValue() 為cellData.getStringValue()
總結
以上是生活随笔為你收集整理的easyexcel 时间转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统架构设计方法论——TOGAF
- 下一篇: 远程调用——hessian使用入门