[alibaba/easyexcel]希望为DateTimeFormat增加时区参数

2024-05-24 260 views
5

建议描述

对于时间的处理,处理需要时间格式,同时还需要时区的设置。服务器的位置不一定都在中国,也可能在国外,不同的时区。如果不指定时区,必定会导致输出的数据不正确。

回答

9

我感觉只要对DateTimeFormat, DateTimeFormatProperty, DateStringConverterDateNumberConverter 进行简单的拓展应该就可以了。

我现在自己的做法是增加一个自定义的@DateTimeZone 并重写了 DateStringConverterDateNumberConverter,事实上也重写了com.alibaba.excel.util.DateUtilsDateUtils没有考虑到对TimeZone的支持,只能重写了。

然后覆盖了原来处理的Date的Converter。

EasyExcel.write(file, Birthday.class)
            .registerConverter(new TimeZoneStringConverter("US/Central"))
            .sheet("birthday").doWrite(birthdayList);
1

后续考虑加入

8

也遇到这种问题了

6

application填写这个方法就可以了 @PostConstruct void started() { TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); }

1

这个建议设置全局默认时间即可

3

请问一下如何设置全局默认时间呢?