SimpleDateFormat geht eine Stunde nach

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hey,
die Strings, die hier bei erstellt werden:

Code:
public class Logger {

    private static int count = 0;
    private static ArrayList<String> logged = new ArrayList<String>();

    public static void log(String text) {

        logged.ensureCapacity(++count);
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        String currentTime = sdf.format(new Date());
        logged.add(new String(currentTime + " - " + text + "\n"));
    }

zeigen an, dass die aktuelle Zeit immer eine Stunde nach geht. Wenn es also 15 uhr ist, holt sich sdf.format() den Wert 14 Uhr.

Hat das was mit der Zeitzone in meinem PC zu tun? Oder woran liegt das? Ich meine die Uhr hier auf meinem Desktok geht ja richtig, also woher nimmt sich Java die Uhrzeit ?

Wie ändere ich das nun? (ausser jetzt kompliziert eine Stunde immer abzuziehen, ich will gerne die tatsächlich korrekte Uhrzeit ermitteln lassen)

Danke
 
hmm, wie kann sowas sein,
was gibt
System.out.println(TimeZone.getDefault());
bei dir aus?

probiere mal folgendes,
Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println(sdf.format(date));

        sdf.setTimeZone(TimeZone.getTimeZone("CET"));
        System.out.println(sdf.format(date));
    }
}

falls es mit anderer Zeitzone dann erstmal klappt ist das aber noch nicht schön,
Sommer/ Winterzeit könnte in England anders sein?
 
System.out.println(TimeZone.getDefault()); gibt aus:

sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]

ich würde schon gerne haben, dass überall die korrekte Zeit angezeigt wird, nicht nur in Deutshland.
 
GMT ist die englische Zeit,
Java gibt also die korrekte Zeit aus, denkt aber es sei in England

ich habe CET, Central European Time,
wie du das umstellen kannst, keine Ahnung,
unter Windows evtl. in der Systemsteuerung/ Datum und Uhrzeit, aber du sagst ja dass sonst alles richtig geht..
(falls es nicht dort auch die englische Zeit ist, die künstlich erhöht wurde
(-> was sich dann auch wieder auf Java auswirken sollte :? ))

die korrekte Zeit wird überall angezeigt, aber eben die, die Java für korrekt hält
 
jo bei mir war keine zeitzone eingestellt, hab jetzt auch CET gemacht und jetzt klappt es.
Komisch, dass meine Desktop Uhr trotzdem meine Zeitzone ermittelt hat, obwohl keine eingestellt war..

naja danke
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben