gpt4 book ai didi

Java - 从excel文件中获取时间戳而不转换为十进制

转载 作者:行者123 更新时间:2023-11-30 08:21:25 27 4
gpt4 key购买 nike

我在 excel 中有一个单元格,其时间戳值为“12:30:00”,当我将单元格的值从 excel 获取到 Java 中的变量时,它被转换为十进制值 (0.520833333333333)。如何保留相同的时间戳值或将小数相应地转换为时间戳值。

最佳答案

日期和我假设时间值也以数字形式存储在 Excel 中。使用 Apache POI 时需要专门处理它们。

您可以尝试以下方法来解决这个问题。

SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm:ss");

if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
// Dates count as numeric and must be handled separately
if (DateUtil.isCellDateFormatted(cell)) {
timeFormat.format(cell.getDateCellValue());
}
}

这当然只是一个例子,它在一个简单的测试用例中工作。我在一个单元格中输入了 12:30:00,它被识别为日期,我获取了 Date 对象并从中提取了时间。
我用来检查的 DateUtilApache POI 的一部分。它还具有一些其他功能,可能对您有所帮助。

但是您应该知道,这适用于非常特殊的情况。即时间被存储为日期。如果在源文件中更改了单元格格式,它也可以存储为简单文本。

根据我的经验,仅仅处理预期的情况是不够的。您通常需要在 switch 语句中处理不同的单元格类型(至少是数字和字符串,也许还有公式)只是为了保存。

关于Java - 从excel文件中获取时间戳而不转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25238527/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com