Java Excel API JXL – 按时间读取单元格

我正在使用Java Excel API从我的Android项目中的Excels表中读取数据。 我有一些像这样形成的专栏: 时间格式

起初我试着用这个代码读取这个单元格:

String cellContent = cell.getContents(); 

但是结果我得到的内容没有小时,例如:59:59。 之后,我试着把这个时间作为秒。 我注意到,当单元格数据获取为DateCell时,date内容对象具有负时间戳。 我做了一些技巧,我发现时间戳的价值0:00:00。 我把这个值设置为正值(2209161600000L)。 现在我只是将这个variables添加到单元格的负时间戳,并将结果除以1000(毫秒)。 一切都很好,直到23:59:59。 上面的值有额外的24小时(24:00:00读取为48:00:00)。 我看到Excel以不同的方式保存这个值。

23:59:59时间单元格值24:00:00时间单元格值

我可以减去这个24小时,但它不是优雅的解决scheme。 我想获得内容作为#:##:##string(我喜欢)或作为秒。 这个问题有什么好的解决办法吗?

Java Excel API自2010年以来未开发,因此我将库更改为Apache POI。 时间单元以24小时的分数返回。

 double fractionOfDay = cell.getNumericCellValue(); long timeInSeconds = Math.round(numericValue * SECONDS_IN_DAY); 

现在一切正常。