# new Date() liefert falsche Uhrzeit



## Z0M813 (5. Jul 2011)

Hallo,
es gibt zwar schon viele Themen mit dem Problem, aber die haben mir nicht weitergeholfen

```
(new java.text.SimpleDateFormat("HH:mm:ss dd.MM.yyyy")).format(new Date())
```
Datum stimmt, aber er zeigt mir eine Uhrzeit von vor 6,5 Stunden an???:L

PS: Ich hätte ja auch im Chat gefragt, aber der funktioniert bei mir irgendwie nicht


----------



## achillesat (5. Jul 2011)

falsche zeitzone eingesellt?


----------



## Z0M813 (5. Jul 2011)

Weiß ich nicht, aber wenn ich das versuche:

```
(new java.text.SimpleDateFormat("HH:mm:ss dd.MM.yyyy")).format(new GregorianCalendar(TimeZone.getTimeZone("Europe/Berlin")))
```
sagt er mir das gleiche(Das mit dem GregorianCalendar ist aus einem anderen Thema hier im Forum...)
Außerdem sind die Unterschiede zu den Zeitzonen doch nur ganzstündig, oder?


----------



## SlaterB (5. Jul 2011)

```
public class Test
{
    public static void main(String[] args)
    {
        SimpleDateFormat sd = new SimpleDateFormat("HH:mm:ss dd.MM.yyyy");
        System.out.println(sd.getTimeZone());
        Date d = new Date();
        System.out.println(d.getTime());
        System.out.println(sd.format(d));;
    }
}
```
Ausgabe:

```
sun.util.calendar.ZoneInfo[id="Europe/Berlin",offset=3600000,[..]
1309871358539
15:09:18 05.07.2011
```

wie lautet die Ausgabe bei dir?


----------



## Z0M813 (5. Jul 2011)

```
sun.util.calendar.ZoneInfo[id="America/Caracas",offset=-16200000,dstSavings=0,useDaylight=false,transitions=5,lastRule=null]
1309871653062
08:44:13 05.07.2011
```
Dann ist es ja relativ klar, wodran es liegt... Aber wie stellt man das um?


----------



## SlaterB (5. Jul 2011)

du kannst in dem einzelnen SimpleDateFormat die Zeitzone ändern,

du kannst bestimmt für Java den Default ändern, ich sehe gerade auf die Schnelle TimeZone.setDefault(),
oder evtl. Parameter bei Programmstart, 
müsstest du aber alles suchen/ auf weitere Antworten warten, genaues kann ich nicht sagen,

oder du musst die Betriebssystem-Grundeinstellung korrigieren, 
bevor du mich fragst: dazu kann ich auch nix sagen


----------



## Ebenius (5. Jul 2011)

Auf was für einem Betriebssystem arbeitest Du denn? Windows? Dann tipp mal in der [c]cmd[/c] den Befehl [c]systeminfo[/c] und guck mal was Dir dort unter "Time Zone" angezeigt wird.



Z0M813 hat gesagt.:


> Außerdem sind die Unterschiede zu den Zeitzonen doch nur ganzstündig, oder?


Nö, es gibt schon einige um halbe Stunden versetzte Zeitzonen, zum Beispiel Venezuelean Standard Time, die Australian Central Standart Time und die Indian Standard Time. Nepal hat sogar fünfdreiviertel Stunden Versatz.

Ebenius


----------



## Ebenius (5. Jul 2011)

Nachtrag: Es soll im Zusammenhang mit Java auch schon geholfen haben, im Windows die Zeit zu verstellen, wieder zurück zu setzen und danach das gleiche mit der Zeitzone. Gucksdu:

Java and incorrect timezone on Windows XP  Daniel Ferbers Technical Tavern

Ebenius


----------



## Z0M813 (5. Jul 2011)

Ich habe Windows XP Home SP3.

```
systeminfo
```
 hat nicht geklappt (Befehl nicht gefunden)
Systemzeit verstellen hilft auch nicht...


----------



## Z0M813 (5. Jul 2011)

Aber das mit TimeZone.setDeafault(...); hat geklappt Vielen Dank


----------



## Z0M813 (5. Jul 2011)

Aber da muss ich eine bestimmte Zone eingeben...
Kann man auch die Zone, die das System nutzt, einstellen?


----------



## SlaterB (5. Jul 2011)

> Systemzeit verstellen hilft auch nicht...
es muss schon irgendwo die alte Zeitzone gestanden haben und diese dann umgeändert, nur die Uhrzeit wäre bisschen wenig

falls wirklich geändert:
neues Java-Programm aufmachen, besser aus neuer Konsole falls eine offen war
oder am besten gar neu booten versteht sich von selbst


----------



## Z0M813 (5. Jul 2011)

Ah, jetzt klappts auch ohne TimeZone.setDefault(...);
Nochmal Danke


----------

