Я пытаюсь сгенерировать некоторые листы Excel в приложении Java с помощью JExcelAPI (v. 2.6.3) и не могу правильно сгенерировать ячейки даты Например, для кода:
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:14:45 GMT + 01: 00 2009
Мой день рождения в среду 17 октября 08:15:45 GMT + 01: 00 2007
А в файле Excel ячейки
1900-01-00 10: 14: 46
1900-01-00 07: 15: 46
Часть времени в Excel корректируется на UTC, а часть даты отбрасывается. Хотя в ссылке упоминается проблема часового пояса, в ней ничего не говорится об отмене дат. Что я делаю не так?