Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Java Grundkurs 3: Generische Programmierung, Datenströme, Datumsrechnung

Zeitzonen

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
In diesem Video lernen Sie, wie Sie die Uhrzeit eines Zeitpunkts unter Berücksichtigung der Zeitzone ausgeben können. Dafür stellt Ihnen der Trainer die Klassen ZonedDateTime und ZoneOffSet vor.

Transkript

In diesem Video lernen Sie, wie Sie sich die Uhrzeit eines Zeitpunkts unter Berücksichtigung der Zeitzone ausgeben können. Dabei stelle ich Ihnen die Klassen ZonedDateTime und ZoneOffset vor. In dem vorliegenden Programm geben wir ja die Geburtsstunde von Java auf der Konsole aus. Nun, dabei haben wir allerdings noch nicht bedacht, dass dies damals die Ortszeit von Santa Clara in Kalifornien war und wir in Deutschland eine andere Zeitzone haben und wir die Zeitverschiebung zwischen den beiden Zeitzonen mit einkalkulieren müssen. Aber die Klasse LocalDateTime enthält diese Informationen ja gar nicht. Stattdessen müssen wir einen anderen temporalen Datentyp verwenden, dem die Zeitzone bewusst ist. Und zwar bietet die Date Time API hierfür eine weitere temporale Klasse an, die sich Zoned Date Time nennt. Eine solche Variable deklariere ich mal und zwar hier, unterhalb von LocalDateTime. Und die Variable nenne ich ebenso zonedDateTime Um die Variable zonedDateTime nun mit einem Zoned Date Time Objekt zu initialisieren, bietet mir die Klasse ZonedDateTime wieder die üblichen Now Of und Parse Klassen Methoden an. Das werde ich Ihnen mal zeigen. Ich füge einen Zuweisungs Operator hinzu, rufe die Klasse ZonedDateTime auf, füge den Punkt Operator hinzu und hier sehen Sie wieder die Methoden from, now, of, und parse. Dieser Methode hier kann ich ein Objekt des Typs und eine Zone ID übergeben. Diese Of Methode werde ich also nutzen. Als ersten Parameter übergebe ich ja die Variable localDateTime. Und somit steht für die ZonedDateTime schon mal das Datum und die Uhrzeit fest. Nun kann ich über eine Zone ID auch darüber Auskunft geben, in welcher Zeitzone das Ereignis stattfand. Und zwar lege ich dies mit Hilfe eines Objekts des TypsZoneID fest. Ich werde also zunächst mal ein Objekt des Typs Zone ID erzeugen und zwar hier oben eine Zeile drüber. ZoneID, Klasse importiere ich und die Variable nenne ich auch ZoneID. Und jetzt initialisiere ich die Variable Zone ID. Und um die Variable ZoneID zu initialisieren, steht uns auch hier wieder die übliche Of Methode zur Verfügung und die erwartet eine Zeichenkette als Übergabe Parameter. Nun muss man wissen, dass eine Zone ID zwar eine Zeitzone darstellt. Im Sprachgebrauch sprechen wir aber von der Zeitzone von Berlin oder London und so weiter. und sofort können wir ungefähr gedanklich die Unterscheidung festmachen. Aber im Grunde genommen, handelt es sich hierbei um eine geographische Region. Aber weil sich die Zone ID nach der Human Time richtet, also nach uns Menschen, ist es auch bei ihr so, dass wir mit Hilfe der geographischen Region als Zeichenkette die Eindeutigkeit der Zeitzone fixieren. Allerdings sind die Zeitzonen, die wir hierbei verwenden können standardisiert. Wir können also nicht einfach Santa Clara Kalifornien als Zeichenkette einsetzen. Stattdessen muss die Zeichenkette Buchstabe für Buchstabe genau der festgelegten und standardisierten geographischen Region entsprechen. Und beispielsweise liegt Santa Clara in der geographischen Zeitzone von Amerika, Los Angeles. Also setze ich dies als Zeitzone ein. Und hierbei muss ich tatsächlich Buchstabe für Buchstabe genau das eintragen, was auch erwartet ist. Also America im Englischen, dann einen Slash und Los, dann einen Unterstrich und Angeles. Jetzt muss ich nur noch die Variable hier einfügen und dann bin ich hiermit fertig. Ich werde Ihnen jetzt noch eine weitere Klasse vorstellen und zwar bietet die DateTimeAPI eine weitere Klasse an, die sich Zone Offset nennt. Mit Zone Offset wird der Versatz angegeben. Damit sind die Stunden gemeint, um die sich die Uhrzeit in Bezug auf die Stadt Greenwich in England verschiebt. Denn dort wurde im Jahre 1850 erstmalig die Uhrzeit aufgrund der Erdrotation festgelegt. Und weil die Klasse Zone Offset eine Kindesklasse der Klasse ZoneID ist, könnten wir die ZoneID auch hiermit initialisieren. Ich kann also auch folgendes schreiben. ZoneOffset. Und auch hier stehen mir wieder Of Methoden zur Verfügung und jetzt kann ich dort eine Zeichenkette eingeben, aus der mir ZoneOffset dann den Versatz rausparsed. Ich könnte zum Beispiel -8 reinschreiben, dann würde es sich hierbei um eine Zeitzone handeln, die um 8 Stunden zeitversetzt zu der Greenwich MeanTime liegt. Und wieviel die jeweilige Zeitzone zur Greenwich MeanTime versetzt ist, muss man dann natürlich auswendig wissen. Daher wird man in der Regel die geographische Region mit der ZoneID einsetzen. Deshalb setze ich auch hier wieder die ZoneID ein. Ich gehe einfach über Strg + Z wieder zurück zu diesem Ausdruck und jetzt kann ich die ZoneDateTime hier unten ausgeben Im System.out.println Ausdruck hier. Denn auch die zoneDateTime verfügt über ein Methode Format und auch der kann ich dann den DateTime Formatter übergeben. Um nun auch die Zeitzone auf der Konsole auszugeben, bietet mir die Klasse DateTime Formatter das groß V als Kürzel an. Und mit zwei großen Vs wird mir die Zeitzone dann zusätzlich auf der Konsole ausgeschrieben. und die werde ich hier in dem Pattern mit reinfügen. Und das Programm speichere ich nun dann ab und führe es aus. So und als Nächstes stellt sich die Frage, wie wir die Uhrzeit des damaligen Ereignisses ausgeben, die wir zum gleichen Zeitpunkt in Deutschland hatten. Und genau für diesen Zweck bietet die Klasse ZonedDateTime die Methode withZoneSameInstant an. Dabei wird der Zeitzonen bezweckte Zeitpunkt beibehalten, jedoch die Zeitzone abgeändert. Und zwar werde ich das jetzt hier unten einmal umprogrammieren. zonedDateTime lasse ich stehen. Und dort füge ich nach der Variablen zonedDateTime die Methode withZoneSameInstant ein Das ist diese hier, withZoneSameInstant und die erwartet eine ZoneID als Übergabe-Parameter. Deshalb schreibe ich als Übergabe-Parameter die Klasse ZoneID rein, rufe die Methode Of auf und schreibe lediglich die Zeitzone von Deutschland rein und die, die nennt sich Europe Berlin. Also Europe/Berlin. So das war’s und das probiere ich jetzt einmal aus. So und dann sehen Sie, dass es zum gleichen Zeitpunkt, als Java veröffentlicht wurde, 19:30 Uhr in Deutschland war In diesem Video haben Sie gelernt, wie Sie sich die Uhrzeit eines Zeitpunkts, unter Berücksichtigung der Zeitzone ausgeben können. Dabei habe ich Ihnen die Klassen ZonedDateTime und ZoneOffset vorgestellt.

Java Grundkurs 3: Generische Programmierung, Datenströme, Datumsrechnung

Steigen Sie tiefer in die Java-Programierung ein und lernen Sie den Umgang mit generischen Typen, Lamda-Ausdrücken, DAtenströmen und mit Datums- und Zeitberechnung.

5 Std. 24 min (47 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:09.10.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!