easyexcel 时间转换
转换 时间 EasyExcel
2023-09-11 14:21:21 时间
转换器:
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()
相关文章
- Java日期时间转换
- Word控件Spire.Doc 转换教程(三十):C#、VB.NET 在 Azure 应用程序中将 Word 转换为 PDF
- 时间戳标准日期之间的转换
- LigerUi中Grid控件中的日期列的日期转换技巧(示例源代码)
- Java中的日期与时间获取与转换?
- Python 格林威治时间格式 Wed Jul 10 20:00:09 +0800 2019 转换为标准时间格式年月日时分秒%Y-%m-%d %H:%M:%S
- 图片与Byte相互转换,文件和字节流的转换方法
- 【Python】+数字时间戳转换为指定格式
- Time-NLP---中文时间表达词转换---统一抽取段落中的时间信息
- dmesg 时间转换脚本
- macOS 开源完整项目之JSON文件格式转换 支持Realm swift coredata (教程含源码)
- js把数组转换为以逗号分隔的字符串
- C#时间戳转换[转发]
- js时间转换,能够把时间转换成yyyymmdd格式或yyyymm格式
- PHP时间戳和日期相互转换(文字有问题)
- SQL中的cast和convert的用法和区别以及时间转换
- Gson本地和服务器环境不同遇到的Date转换问题 Failed to parse date []: Invalid time zone indicator
- LINQ to Entities 不识别方法“System.String ToString(System.String)”,因此该方法无法转换为存储表达式。
- iOS - 标准时间与时间戳相互转换
- 时间转换为今天昨天前天几天前
- Convert between cv::Mat and QImage 两种图片类转换
- 整理了一下Python中时间的格式化、date(时间)和str(文本)之间的相互转换、以及相关的时间转换方法
- C# 13位时间戳 转换为 标准时间
- mysql的日期与时间函数,varchar与date相互转换
- 时间格式转换和加一天操作