java读取excel中的日期值变成天数如何格式化成YYY-MM-dd
时间: 2024-01-21 10:18:26 浏览: 273
在 Java 中,可以使用 SimpleDateFormat 类将日期格式化为指定格式的字符串。对于 Excel 中的日期值,需要先将其转换为 Java 中的日期类型,然后再进行格式化。
下面是一个读取 Excel 中日期值并格式化的示例代码:
```java
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class ExcelDateFormatter {
public static void main(String[] args) {
try {
// 读取 Excel 文件
Workbook workbook = WorkbookFactory.create(new File("data.xlsx"));
Sheet sheet = workbook.getSheetAt(0);
// 遍历每一行数据
for (Row row : sheet) {
// 获取日期值所在的单元格
Cell dateCell = row.getCell(2);
// 判断单元格类型是否为日期类型
if (dateCell.getCellType() == Cell.CELL_TYPE_NUMERIC && DateUtil.isCellDateFormatted(dateCell)) {
// 将日期值转换为 Java 中的日期类型
Date date = DateUtil.getJavaDate(dateCell.getNumericCellValue());
// 格式化日期为指定格式的字符串
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = dateFormat.format(date);
// 输出格式化后的日期值
System.out.println(formattedDate);
}
}
// 关闭 Excel 文件
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上面的示例代码中,我们使用 Apache POI 库读取 Excel 文件,遍历每一行数据,获取日期值所在的单元格并判断其类型是否为日期类型,如果是,则将其转换为 Java 中的日期类型,然后使用 SimpleDateFormat 类将其格式化为指定格式的字符串,并输出格式化后的日期值。
需要注意的是,Excel 中的日期值实际上是一个双精度浮点数,其整数部分表示日期,小数部分表示时间。因此,在将其转换为 Java 中的日期类型时,需要使用 DateUtil 类的 getJavaDate() 方法,同时需要判断单元格是否为日期类型,以免出现转换错误。
阅读全文