forked from fanruan/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
2.0 KiB
53 lines
2.0 KiB
4 years ago
|
package com.alibaba.excel.converters.localdatetime;
|
||
|
|
||
|
import java.text.ParseException;
|
||
|
import java.time.LocalDateTime;
|
||
|
|
||
|
import com.alibaba.excel.converters.Converter;
|
||
|
import com.alibaba.excel.enums.CellDataTypeEnum;
|
||
|
import com.alibaba.excel.metadata.GlobalConfiguration;
|
||
|
import com.alibaba.excel.metadata.data.ReadCellData;
|
||
|
import com.alibaba.excel.metadata.data.WriteCellData;
|
||
|
import com.alibaba.excel.metadata.property.ExcelContentProperty;
|
||
|
import com.alibaba.excel.util.DateUtils;
|
||
|
|
||
|
/**
|
||
|
* LocalDateTime and string converter
|
||
|
*
|
||
|
* @author Jiaju Zhuang
|
||
|
*/
|
||
|
public class LocalDateTimeStringConverter implements Converter<LocalDateTime> {
|
||
|
@Override
|
||
|
public Class<?> supportJavaTypeKey() {
|
||
|
return LocalDateTime.class;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public CellDataTypeEnum supportExcelTypeKey() {
|
||
|
return CellDataTypeEnum.STRING;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public LocalDateTime convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty,
|
||
|
GlobalConfiguration globalConfiguration) throws ParseException {
|
||
|
if (contentProperty == null || contentProperty.getDateTimeFormatProperty() == null) {
|
||
|
return DateUtils.parseLocalDateTime(cellData.getStringValue(), null, globalConfiguration.getLocale());
|
||
|
} else {
|
||
|
return DateUtils.parseLocalDateTime(cellData.getStringValue(),
|
||
|
contentProperty.getDateTimeFormatProperty().getFormat(), globalConfiguration.getLocale());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public WriteCellData<?> convertToExcelData(LocalDateTime value, ExcelContentProperty contentProperty,
|
||
|
GlobalConfiguration globalConfiguration) {
|
||
|
if (contentProperty == null || contentProperty.getDateTimeFormatProperty() == null) {
|
||
|
return new WriteCellData<>(DateUtils.format(value, null, globalConfiguration.getLocale()));
|
||
|
} else {
|
||
|
return new WriteCellData<>(
|
||
|
DateUtils.format(value, contentProperty.getDateTimeFormatProperty().getFormat(),
|
||
|
globalConfiguration.getLocale()));
|
||
|
}
|
||
|
}
|
||
|
}
|