tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
553
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Chefkoch333
    Chefkoch333 Chefkoch333 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    112
    Hi,
    ich stehe gerade auf dem Schlauch. Ich möchte eigentlich nur die Lokale Zeit als Zulu Zeit ausgeben.
    Mein erster Ansatz war:
    Code :
    1
    2
    
    Calendar now = Calendar.getInstance(TimeZone.getTimeZone("Zulu"));
    System.out.println(now.getTime());

    Dort bekomme ich aber GMT+2 zurück, also die lokale Zeit. Allerdings verstehe ich nicht ganz wieso...

    Nach ein bissl rumbasteln habe ich nun folgende Lösung gefunden:
    Code :
    1
    2
    
    Calendar now = Calendar.getInstance();
    now.setTimeInMillis(now.getTimeInMillis()-now.getTimeZone().getOffset(now.getTimeInMillis()));

    Allerdings finde ich das das ganze ein wenig krank aussieht. Gibt es denn keine elegante Lösung?

    Danke und Gruß
    ck.
     

  2. #2
    Avatar von Chefkoch333
    Chefkoch333 Chefkoch333 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    112
    ok bin gerade mit Tipps eines Kollegen drauf gekommen. Bei der Ausgabe Date.toString() wird immer die Default Timezone verwendet. Setzt man einen DateFormatter ein kann eine beliebige TZ gewählt werden. Die Lösung ist:
    Code :
    1
    2
    3
    4
    
    Calendar now = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("Zulu"));
    System.out.println(sdf.format(now.getTime()));
     

  3. #3
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    Nur frage ich mich, warum du da für die aktuelle Uhrzeit ein Calendar-Objekt erstellst? Weil dich nur das Date-Objekt im Calendar interessiert. Ein sdf.format(new Date()) wäre daher ausreichend
    Weil das Calendar-Objekt ist seeeehr teuer im Vergleich zu einem simplen Date.


    Wenn du mehr mit Zeiten hantierst empfiehlt es sich die library JodaTime. Diese wird in ähnlicher Form in Java 8 der JVM hinzugefügt.
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

Ähnliche Themen

  1. [Zulu] AutoPlay?
    Von DosCoder im Forum Audiotechnik, Recording & Audio-Software
    Antworten: 0
    Letzter Beitrag: 22.11.09, 19:39
  2. SQL/Oracle date/time -> suche Date
    Von Goldman im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 20.05.09, 15:28
  3. [C#] Access DATE != DataGridView DATE ? + Daten ändern, aber wie?
    Von Blackhawk50000 im Forum .NET Windows Forms
    Antworten: 22
    Letzter Beitrag: 31.07.08, 16:26
  4. Wie komme ich an DSL ran?
    Von _Bjoern_ im Forum Internet, DSL & Flatrate
    Antworten: 2
    Letzter Beitrag: 12.08.05, 19:46