easyExcel读文件,读取时间格式问题。已解决!

使用easyExcel读取文件数据保存数据库时,发现读取文件第一行数据的时间时,例如excel文件中时间为 23:00:00,代码读取出来的格式为 11:00:00 下午 时间从24小时制变为了12小时制,并且还会在后面加上 上午、下午字样,但是只有第一行读的数据会这样,后面就正常了。

1、excel文件

img


2、使用debug查看读取的数据
2.1、遍历的第一行数据:

img


2.2、第二行数据:

img


2.3、第三行数据:

img

这是时间列的单元格的格式,默认什么都没定义。

img

有想过对读取的字符串进行截取,直接截取前面的时间段,但是这样只解决了第一行时间后添加上午、下午的问题,但是24小时转12小时制的问题解决不了。

可以看到就第一行的时间会出现这样的问题,我怎么在不去调整excel文件单元格格式的情况下,让它读取的时间数据与excel保持一致?注意!不修改文件中时间列的单元格格式!这样应该怎么去解决呢?

我在官方文档中找到 日期、数字或自定义格式转换,在读对象中的时间属性上加上DateTimeFormat,在其中写好你需要转换的格式就好了,日期时间都可以,只要你写好要转的格式就好了。注意包不要导错了!

img

如果有其他复杂需求,还可以自定义转换器(详情看官方文档)。

方便看下代码么,写easyexcel的格式是怎样的,还是说没有写到自动换行的代码呢,这样更好排查问题,

很简单啊, 把excel的数据从后台取出来, 肯定是一个 实体类
然后遍历, 通过 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
然后把 planTime 取出来 ,sdf.format(planTime); 转一下就行了呀