Datum util zu Datum sql umwandeln

Hallo!

Das ist ja das Problem:

long t = listDate.get(i).getTime(): //listDate ist eine ArrayList aus java.util.Date
erg.add(new java.sql.Date(t));

eigentlich genau das selbe, aber ich bekomm ja immer die Exception:

Bei der Konvertierung eines char-Datentyps in einen datetime-Datentyp liegt der datetime-Wert außerhalb des gültigen Bereichs.
 
Die Fehlermeldung kommt ja vom SQL-Treiber? Sonst wäre sie kaum eingedeutscht^^

Ich hab mal google befragt....
Da war das Problem, dass ein deutschsprachiger (Microsoft)SQL-Server auf einem Englischen Windows läuft.

Und dadurch ein anderes Datumsformat erwartet wird vom SQL-Server.

Kurzes Datumsformat:
Hier: TT.MM.JJJJ

Langes Datumsformat:
TTTT, T. MMMM JJJJ

Ein Stacktrace wäre natürlich schöner gewesen (package-Namen oder so hätteste ja zensieren können^^)
 
Zuletzt bearbeitet:
Das java.util.Date gibt mir aber folgendes Format zurück:

Tue Jul 27 05:26:24 CEST 2010

Kann mir jemand sagen, woher dieses "Tuesday"
 
OK, ich habs

Der entscheidende Hinweis war die Sprache!
Also, ich bin draufgekommen, dass es nicht umbedingt notwendig ist, java.sql.Date zu verwenden, desshalb hab ich dann SimpleDateFormat verwendet. (englischer Server)

Code:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-dd-MM HH:mm:ss"); //Achtung auf Groß-Klein Schreibung
arrayList.add(sdf.format(listDate.get(i))); //arrayList<String>
Danke für eure Hilfe!

ps: StrackTrace ist bei mir jetzt ein bißchen kompliziert herbeizuzaubern, denn ich führe das Program nicht auf dem Computer aus, auf dem ich programmiere.
 
Zuletzt bearbeitet:
Danke, es funktioniert jetzt. Es lag tatsächlich an der Sprache. Man braucht java.sql.Date garnicht

Code:
SimpleDateFormat sdf = new SimpleDateFormat(yyyy-dd-MM HH:mm:ss); //Groß-Klein Schreibung beachten
erg.add(sdf.format(listDate.get(i)); //erg=ArrayList<String>

Danke für eure Hilfe!
 
Ich verstehe immer noch nicht was du eigentlich gemacht hast? Formatierst du eigenhändig die Variablen für den SQL-String? (habs nun gesehen...hatte das wohl übersehen)

Dazu benutzt man normalerweise ein PreparedStatement. Der sollte alles durch den JDBC-Treiber entsprechend formatieren. http://java.sun.com/javase/6/docs/api/java/sql/PreparedStatement.html

Es ist auch performanter(batch inserts/updates) bei häufigeren Aufrufen und schützt vor SQL-Injections.
 
Von einem Server werden e-mails geholt, diese werden ausgewertet.(Name, Addresse, DatumAbgeschickt, DatumEmpfangen usw.)

Alle diese Felder werden dann in eine sql Datei gespeichert.

mfg
Steve
 
Zurück