# Datum erstellen für SQL Format Date



## c.k (25. Mai 2009)

Hallo,

Ich möchte gerne in Java ein Datum (also Jahr, Monat, Tag) erzeugen und dieses mit SQL in eine Datenbankspalte des Formats "Date" schreiben.

Das Folgende funktioniert aber nicht...

java.sql.Date date = new java.sql.Date(2008,12,20);

Wenn ich das mit System.out.println(date); ausgebe kommt 3909-01-20 raus...
Wie macht mans richtig?

Vielen Dank schonmal


----------



## Wildcard (26. Mai 2009)

In der Java Doc steht für diesen Konstruktor doch ganz klar folgendes:


> year - the year minus 1900; must be 0 to 8099. (Note that 8099 is 9999 minus 1900.)
> month - 0 to 11
> day - 1 to 31


Ebenfalls steht dort das dieser Konstruktor deprecated ist und du stattdessen einen Timestamp verwenden sollst (den Konstruktor mit Long). Für die Aktuelle Zeit System.currentTimeMillis, für eine bestimmte Zeit hilft dir dabei Calendar.


----------



## Oli (26. Mai 2009)

Hi,


```
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
Date date = format.parse("20.12.2008");
```


----------



## Landei (27. Mai 2009)

Oli, du weißt aber schon, dass wir hier ein java.sql.Date und kein java.util.Date brauchen?

```
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
java.sql.Date date = new java.sql.Date(format.parse("20.12.2008").getTime());
```


----------

