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.
52 lines
2.0 KiB
52 lines
2.0 KiB
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())); |
|
} |
|
} |
|
}
|
|
|