我尝试使用JExcelAPI(v.2.6.3)在Java应用程序中生成一些Excel工作表,并且无法正确生成日期单元格。例如,下面的代码:JExcelAPI - 将日期写入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是周一六月08 11点十四分45秒GMT + 01:00 2009年
我的生日是在周三08年10月17日:15:45 GMT + 01:00 2007
,并在Excel文件中的细胞是
1900-01-00 10时十四分46秒
1900-01-00七时15分46秒
Excel中的时间部分已更正为UTC,并且日期部分被丢弃。尽管参考文献提到了时区问题,但没有提及丢弃日期。我究竟做错了什么?
不要添加新的答案。编辑您的原创。 – duffymo 2009-06-08 09:56:31
或接受这个答案,说清楚你找到了问题 – 2009-06-08 13:01:57