Ich versuche, einige Excel-Blätter in Java-Anwendung mit Hilfe von JExcelAPI (v. 2.6.3) zu generieren und kann nicht korrekt Datenzellen generieren. Zum Beispiel für den Code ein:JExcelAPI - Datum in Excel-Tabelle schreiben ignoriert Tag, Monat und Jahr
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();
}
Der Ausgang (auf Konsole) ist:
Date1 ist Mo 8. Juni 11.14.45 GMT + 01: 00 2009
Mein Geburtstag ist am Mi 17. Oktober 08 : 15: 45 GMT + 01: 00 2007
Und in Excel die Zellen
1900-01-00 10:14:46
1900-01-00 07:15:46
Der Zeitteil in Excel wird in UTC korrigiert und der Datumsteil wird verworfen. Während in der Referenz das Zeitzonenproblem erwähnt wird, sagt es nichts über das Verwerfen von Daten. Was mache ich falsch?
Fügen Sie keine neue Antwort hinzu. Bearbeiten Sie Ihr Original. – duffymo
oder akzeptieren Sie diese Antwort, um klarzustellen, dass Sie das Problem herausgefunden haben –
Sie haben gerade mein sehr ähnliches Problem gelöst :) –