Datentypen Apache Poi & Excel Datumsformat

Strahlungsleck

Aktives Mitglied
Hallo Java-Fans,

und zwar arbeite ich momentan mit Apache Poi zum erstellen und auslesen Exceltabellen, das klappt auch ohne Probleme,
nur beim Datum zickt das poi ein wenig rum.

Bis jetzt wurde beim setzen des datums ein long Wert genommen und
per
Java:
System.CurrentTimeMillis();
gesetzt. Aber anstatt selber im
Programm die Werte, für die XML zu setzen, soll er diese aus einer Exceltabelle auslesen und setzen was auch
wunderbar klappt, nur beim Format mit dem Datum klappt es nicht richtig. Für das Datum von Heute setzt er 01.01.70 -.-
habe aber auch das datum so reingeschrieben: 20.07.10 oder mit den Formen =jetzt() / heute() hilft alles nicht,
ich weiß nicht wie ich genau das hinkriegen soll und bräuchte dringend von euch ein paar Ratschläge oder Ideen.
Achja das Datum vom 20.07.10 in Millisek und long Wert 1279576800000
wenn ich es aber so in Excelsetze und den double Wert nach long caste wegen dem Datentyp bekomme ich
folgende Zahl heraus: 40379
evt. hat jmd auch ne Ahnung wie man das umrechnen kann, das würde mir auch schon helfen.

- Poi hat kein long Wert hat (nehm dafür double und caste nach long)
- ich nicht weiß wie ich das Datum korrekt in Excel setzen/formatieren muss
- gibt es eine Umrechnungsmethode oder sogar vorhandende funktion im Java ?!
 
S

SlaterB

Gast
zum Theme 40379 zu Java-Date habe ich mir paar Umrechnungen schrieben
Java:
public class Test
{

    private static final long MILLISECONDS_OF_DAY = 1000 * 3600 * 24;
    private static final long MILLISECONDS_OF_DAY_HALF = MILLISECONDS_OF_DAY / 2;
    /**
     * beliebiger Richtwert zur Umrechnung von Java-Date nach Excel-Date als double, beide
     * Werte müssen zusammenpassen
     */
    private static final Date EXCEL_CONVERSION_DATE = new GregorianCalendar(2006, 8, 29).getTime();
    private static final double EXCEL_CONVERSION_DATE_DOUBLE = 38989;

    /**
     * @param date
     * @return Date als double in Excel-Skala
     */
    public static double getExcelTime(Date date)
    {
        int daysDiff = daysDiff(EXCEL_CONVERSION_DATE, date);
        return EXCEL_CONVERSION_DATE_DOUBLE + daysDiff;
    }

    /**
     * @param dateExcel
     *            Date in Excel-Skala
     * @param calendar
     *            optional, Hilfsobjekt zur Datumsberechnung, wird neu erzeugt wenn null
     * @return Date
     */
    public static Date getDateForExcelTime(int dateExcel, GregorianCalendar calendar)
    {
        int daysDiff = (int)(EXCEL_CONVERSION_DATE_DOUBLE - dateExcel);
        return getDateDaysBefore(EXCEL_CONVERSION_DATE, daysDiff, calendar);
    }

    public static int daysDiff(Date fromDate, Date toDate)
    {
        // ist sicher gegenüber Sommer-/ Winterzeitwechsel, da 12 Stunden aufaddiert
        // werden, bevor die Zahl der Tage (ab-)gerundet wird
        Date from = fromDate;
        Date to = toDate;
        int multiply = 1;
        if (from.after(to))
        {
            multiply = -1;
            from = to;
            to = fromDate;
        }
        long days = (to.getTime() - from.getTime() + MILLISECONDS_OF_DAY_HALF) / MILLISECONDS_OF_DAY;
        return (int)days * multiply;
    }

    /**
     * Subtrahiert eine Anzahl von Tagen von einem Datum. Liefert ein neues Datum mit der
     * neuen Zeit.
     * 
     * @param date
     * @param days
     * @param calendar
     *            optional, Hilfsobjekt zur Datumsberechnung, wird neu erzeugt wenn null
     * @return Date
     */
    public static Date getDateDaysBefore(Date date, int days, GregorianCalendar calendar)
    {
        if (calendar == null)
        {
            calendar = new GregorianCalendar();
        }
        calendar.setTime(date);
        calendar.add(Calendar.DATE, -days);
        return calendar.getTime();
    }
}

dazu findet man bei google auch einiges, vielleicht besseres

Google
 
Zuletzt bearbeitet von einem Moderator:

Strahlungsleck

Aktives Mitglied
Hi Slater,

danke für deine schnelle hilfe, hab an google net wirklichgedacht, manchmal sieht man vor lauter Problemen und korrekturen
das was am einfachsten und offentsichtlichsten ist garnicht.

*EDIT*
ging ja nur darum den Wert, den ich von/aus Excel bekomme in den entsprechenden Millisek wert umzurechnen ;)
 
Zuletzt bearbeitet:

Strahlungsleck

Aktives Mitglied
irgendwie stehe ich total aufn schlauch und blicke voll 0 durch...
kann mir jmd mal bitte genau erkären wie ich den wert von 40379 (Excel)
halt auf die MilliSek hochgerechnet bekomme ? Sorry =/

Und was sind die 40379 aus Excel? - Tage, Stunden oder Äpfel ?!
 
S

SlaterB

Gast
das sind Tage seit einem bestimmten Referenzdatum,
welches das ist kannst du die selber überlegen bzw. mit meinem Code ausrechnen,
selber gemacht: 30. Dezember 1899, aha, wahrscheinlich 1. Januar 1900, +-1 und so

schau dir doch einfach meinen Code an, wie da mit ganz simplem Rechenschritten ein Date rauskommt,
aus einem Date bekommst du immer auch die Millisekunden, falls zwischen Jahr 1970 und 2060, ansonsten negativ, Überlauf usw.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Apache POI Excel Letzte Reihe einer bestimmten Spalte Java Basics - Anfänger-Themen 1
S Prüfen ob Zelle in Excel leer ist funktioniert nicht (Apache POI) Java Basics - Anfänger-Themen 18
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
S Wie bestehende Excel-Einträge mit neuen Vergleichen (mit Apache POI)? Java Basics - Anfänger-Themen 0
T Apache POI (Excel) - Probleme mit Zahlenformat Java Basics - Anfänger-Themen 2
M FTP-Verbindung mit Apache Commons Net Java Basics - Anfänger-Themen 5
P apache.poi Java Basics - Anfänger-Themen 9
D Apache HTTPClient für alle Fälle Java Basics - Anfänger-Themen 41
P Apache Derby wird in Eclipse trotz Anbindung nicht gefunden Java Basics - Anfänger-Themen 6
P NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap trotz vorhandener Klasse? Java Basics - Anfänger-Themen 10
P Maven-Dependencies (package org.apache.http.nio does not exist) Java Basics - Anfänger-Themen 6
M Java Einstellung von Apache POI für MS Word Erstellung mit Eclipse Java Basics - Anfänger-Themen 6
J Apache Poi - createCell() Methode akzeptiert keinen Index aus for-schleife als Parameter Java Basics - Anfänger-Themen 4
Bluedaishi Apache Tomcat 9 Java Basics - Anfänger-Themen 7
O Apache POI Zeilenfarbe Java Basics - Anfänger-Themen 2
M Apache POI PPT - Vertikales Alignment von Text im XSLFAutoShape Java Basics - Anfänger-Themen 2
O Apache: Log-Settings werden nicht gezogen Java Basics - Anfänger-Themen 0
D Apache POI Tabelle wechseln Java Basics - Anfänger-Themen 2
E Apache Derby mit Eclipse Java Basics - Anfänger-Themen 2
O Problem mit optionalen Argumenten - Apache CLI - Java Basics - Anfänger-Themen 2
O POI Apache sheet scanner Java Basics - Anfänger-Themen 1
Joew0815 Error org.apache.xmlrpc.client.XmlRpcClientConfigImpl.setUserAgent Java Basics - Anfänger-Themen 2
D Apache POI - XWPF - MS Word Java Basics - Anfänger-Themen 0
U Apache Ant Java Basics - Anfänger-Themen 4
B Apache: jar-Datei Download als jar und nicht als zip Java Basics - Anfänger-Themen 4
D Import von import org.apache.commons.math3...... Java Basics - Anfänger-Themen 2
E apache-commons-net einbinden. Java Basics - Anfänger-Themen 18
Gossi Datentypen Probleme mit Apache Poi Java Basics - Anfänger-Themen 2
B org.apache.commons.... Folder in Projekt einfügen Java Basics - Anfänger-Themen 6
S org.apache.commons.net.* Java Basics - Anfänger-Themen 3
J Classpath Apache POI Java Basics - Anfänger-Themen 14
N Apache POI pptSlide erzeugen Java Basics - Anfänger-Themen 2
K apache poi - Spalten zählen Java Basics - Anfänger-Themen 4
G Apache POI Filter erstellen Java Basics - Anfänger-Themen 14
G Mit Apache POI Kopfzeilen definieren Java Basics - Anfänger-Themen 11
D Apache Commons Telnet Java Basics - Anfänger-Themen 2
A Apache POI - HSSF vs. XSSF Problem Java Basics - Anfänger-Themen 4
K Apache Deby installieren? Java Basics - Anfänger-Themen 3
P "import" org.apache.xxxxxxx Java Basics - Anfänger-Themen 18
J Problem bei Apache ANT Java Basics - Anfänger-Themen 2
G http-Port beim Apache Tomcat ändern Java Basics - Anfänger-Themen 1
G org.apache.commons.httpclient Java Basics - Anfänger-Themen 3
G Apache Tomcat startet nicht da JAVA_HOME nicht definiert Java Basics - Anfänger-Themen 3
G Context Listener des Apache Tomcat verwenden Java Basics - Anfänger-Themen 4
alexpetri installation einer WAR datei auf apache Java Basics - Anfänger-Themen 3
G http-Request auf Apache Tomcat Java Basics - Anfänger-Themen 13
Y Problem mit org.apache.commons.httpclient Java Basics - Anfänger-Themen 3
E Apache jakarta fehler Java Basics - Anfänger-Themen 5
K MySQL-Connector auf Apache Java Basics - Anfänger-Themen 4
S HttpClient von apache benutzen? Java Basics - Anfänger-Themen 2
G StringUtils von jakarta.apache.org/commons/lang/api einbauen Java Basics - Anfänger-Themen 3
D Apache.Xerces unter Eclispe? import/plugin/package? Java Basics - Anfänger-Themen 2
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
S Verbindung von einer Excel Datei zu Java-- Java Basics - Anfänger-Themen 4
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
Trèfle EXCEL-File Laufwerkunabhängig einbinden. Java Basics - Anfänger-Themen 1
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
P Variablen in Excel speichern Java Basics - Anfänger-Themen 6
P String zerstückeln und in Excel einfügen Java Basics - Anfänger-Themen 11
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
S Kalenderwochen im Excel Java Basics - Anfänger-Themen 0
V Excel Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 4
X Verknüpfte Excel Felder mitändern Java Basics - Anfänger-Themen 6
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
F Excel und Poi Java Basics - Anfänger-Themen 12
T Zeilenweise Excel-Datei mit Strings befüllen Java Basics - Anfänger-Themen 28
P Excel-Tabelle erstellen Java Basics - Anfänger-Themen 4
R POI HSSF liesst in Excel Formel statt Ergebnis Java Basics - Anfänger-Themen 4
D println von excel $A$1 Java Basics - Anfänger-Themen 3
K JApplet zugriff auf Excel Datei Java Basics - Anfänger-Themen 3
D Werte aus Excel in Diagramm einfügen Java Basics - Anfänger-Themen 6
D Design-Tipps für neues Programm (Excel-Charts-...) Java Basics - Anfänger-Themen 3
K Konvertierung von einem Text in eine Zahl in Excel(JXL) Java Basics - Anfänger-Themen 2
H Ausgabe nach Excel exportieren Java Basics - Anfänger-Themen 7
T Datum aus Excel prüfen Java Basics - Anfänger-Themen 2
D Abfragen ob Excel-Dateien Makros enthalten? Java Basics - Anfänger-Themen 4
A POI Einlesen Excel Workbook aus BLOB oder von URL anstatt aus Filesystem ? Java Basics - Anfänger-Themen 3
B Abfragen eines Excel-Feldes auf null Java Basics - Anfänger-Themen 17
T Datei mit Excel öffnen Java Basics - Anfänger-Themen 2
D Speichern in Excel über Filechooser Java Basics - Anfänger-Themen 21
S Excel Textfeld auslesen Java Basics - Anfänger-Themen 6
S POI Excel sortieren Java Basics - Anfänger-Themen 4
D BETAVERT aus Excel auch in Java? Java Basics - Anfänger-Themen 4
M Probleme mit Excel Datei und JSP Java Basics - Anfänger-Themen 7
T Text aus Word in Excel formatieren Java Basics - Anfänger-Themen 3
T ins Excel exportieren. Java Basics - Anfänger-Themen 23
B In Java erstellte Dateien in Excel verwenden Java Basics - Anfänger-Themen 4
D excel datei Spalten lesen? Java Basics - Anfänger-Themen 7
M Object in Excel schreiben Java Basics - Anfänger-Themen 4
M HSSF - JTable zu Excel exportieren Java Basics - Anfänger-Themen 13
M Excel in Java Java Basics - Anfänger-Themen 2
G Excel-Interface (J-Integra for COM) Java Basics - Anfänger-Themen 2
J POI: Leere Excel Zellen Java Basics - Anfänger-Themen 3
M Libraries für Arbeit mit Excel (Alternativen) Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben