如何使用SpringBatch通过XSSFSheetXMLHandler.SheetContentsHandler指定日期格式?

时间:2019-06-27 10:59:18

标签: java spring-batch cell

我在有关var2属性的方法org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler.cell(String var1, String var2, XSSFComment var3)上遇到麻烦。我使用的是Spring-Batch,可用来解析其中包含一些日期的.xlsx文件。在.xlsx文件中,日期以DD/MM/YYYY格式给出,但是一旦达到上述给定的方法,var2属性就会读取MM/DD/YY

我不知道如何调用此方法,因此我不知道如何指定日期格式以保留全年值YYYY而不是短格式值YY

这在其他地方给我带来麻烦,因为2039年及以后的年份转换为39岁及以上,后来被解释为1939年及以上。

感谢您提供有关此问题的帮助。

我认为随后的问题与2038年的问题here有关。由于当前的日期定义取决于自1970年1月1日以来的二进制秒数(以32位给出),因此最大值对应于2038年1月19日。因此,我认为后续方法(org.joda.time.format .DateTimeFormatter.parseDateTime(String var1))仅给定两位数(YY)时,才期望到2038年,尽管存在一个iDefaultYear属性,其值为2000。我希望通过提供完整的年份,它可以按预期工作。

预期:01/01/2039 -> 01/01/2039 -> 01/01/2039 实际:01/01/2039 -> 01/01/39 -> 01/01/1939

1 个答案:

答案 0 :(得分:0)

没关系,我认为问题出在excel如何存储日期。我已经通过将单元格格式化为文本值来解决了我的问题,并且一切正常。所以我想即使我写了长日期格式(YYYY),excel也会存储短日期格式(YY)。因此,当我稍后解析文件时,我读了YY,这会引起我的麻烦。