In der sechsten Lektion dieser Serie behandeln wir ein Thema, das nicht fehlen darf, wenn eine Anwendung über die Grenzen eines einzelnen Landes hinausgeht: Zeitzonen.
Sobald es notwendig wird, ein Datum oder eine Uhrzeit in der Zeitzone des Benutzers anzuzeigen, wird das Zeitmanagement schnell komplexer. Zeitverschiebungen, Referenzstädte, Sommer- und Winterzeit, ISO 8601-Formate mit Offset… all dies sind Themen, die auf den ersten Blick einfach erscheinen, die aber eine echte Methode erfordern, um sauber behandelt zu werden.
In diesem Kurs werden wir unsere Stmp-Klasse erweitern, damit sie ein komplettes Zeitzonen-Repository laden und nutzen kann, Städte mit ihren Zonen verknüpfen kann, Zeitverschiebungen zwischen Städten berechnen kann und dann die grundlegenden Funktionen der Klasse (build, now, getDate, getTime) anpassen kann, damit sie diese internationale Dimension integrieren können.
Wir werden auch sehen, wie man die ISO 8601 Konvertierungsfunktionen weiterentwickeln kann, um Zeitoffsets explizit zu handhaben und so Datums- und Zeitangaben in standardisierten Formaten zu erzeugen oder zu interpretieren, die für den Austausch zwischen Systemen verwendbar sind.
Abgesehen von den Zeitzonen selbst, ist dieser Kurs auch ein gutes Beispiel für eine Reihe von Best Practices beim Design: Verzögertes Laden von Ressourcen, Caching von Daten, Verwaltung von gemeinsamen Eigenschaften in einem Singleton, schrittweise Weiterentwicklung einer bestehenden API und Verwendung von variadischen Parametern, um eine flexible und gleichzeitig leistungsstarke Schnittstelle zu erhalten.