gpt4 book ai didi

java - JExcelAPI - 将日期写入 Excel 工作表会忽略日、月和年

转载 作者:搜寻专家 更新时间:2023-11-01 02:18:35 25 4
gpt4 key购买 nike

我尝试使用 JExcelAPI (v. 2.6.3) 在 Java 应用程序中生成一些 Excel 工作表,但无法正确生成日期单元格。例如,对于代码:

WritableWorkbook workbook = null;
workbook = Workbook.createWorkbook(new File("C:\\tmp\\tests.xls"));
try {
Date date = new Date();
final WritableSheet sheet = workbook.createSheet("Sheet", 0);
DateTime dateTime = new DateTime(0, 0, date);
sheet.addCell(dateTime);
System.out.println("Date1 is " + date);
final Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2007);
cal.set(Calendar.MONTH, Calendar.OCTOBER);
cal.set(Calendar.DAY_OF_MONTH, 17);
cal.set(Calendar.HOUR_OF_DAY, 8);
cal.set(Calendar.MINUTE, 15);
date = cal.getTime();
dateTime = new DateTime(0, 1, date);
sheet.addCell(dateTime);
System.out.println("My birthday is on " + date);
} finally {
workbook.write();
workbook.close();
}

输出(在控制台上)是:
日期 1 是 Mon Jun 08 11:14:45 GMT+01:00 2009
我的生日是 2007 年 10 月 17 日星期三 08:15:45 GMT+01:00

在 Excel 文件中,单元格是
1900-01-00 10:14:46
1900-01-00 07:15:46

Excel 中的时间部分被更正为 UTC,日期部分被丢弃。虽然引用文献提到了时区问题,但它没有提到丢弃日期。我做错了什么?

最佳答案

好的。我想通了。创建日期格式

DateFormat customDateFormat = new DateFormat ("dd MMM yyyy hh:mm:ss");
WritableCellFormat dateFormat = new WritableCellFormat (customDateFormat);

并将其传递给 DateTime 构造函数

DateTime dateTime = new DateTime(0, 0, date, dateFormat);

修复它。似乎默认情况下只采用时间部分。对不起我的愚蠢。

关于java - JExcelAPI - 将日期写入 Excel 工作表会忽略日、月和年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/964055/

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