Zeitangaben speichern: Zeitzone erforderlich?

Ich bin neugierig zu wissen, ob es sich bei dem, was ich betrachte, um eine schlechte Praxis handelt oder ob dies eine konkrete und bewusste Entscheidung ist, die eigentlich eine anständige Idee ist. Ich möchte Informationen zu Terminen für Ereignisse in bestimmten Städten speichern. Ich möchte diese Daten als UTC-Zeitstempel speichern. Wäre es nicht eine gute Idee, einfach den Zeitstempel und die Stadt- / Länder-ID (die einer bestimmten Zeitzone zugeordnet ist) zu speichern, anstatt die Zeitzone für jedes Ereignis zu speichern? Ich frage, weil sich die Zeitzonen ändern können, aber die Stadt-IDs in der DB würden sich niemals ändern. Sobald der Server mit der neuesten Zeitzone im (unwahrscheinlichen) Fall einer Zeitzonenänderung synchronisiert ist, ist das Ereignis unabhängig und von dieser Änderung nicht betroffen. Angenommen, eine Zeitzone ändert ihre Grenzen, dann könnten Ereignisse, die zuvor in dieser Zeitzone aufgetreten sind, außerhalb der Zeitzone liegen. Scheint es unklug, dies zu tun? Ich frage mich nur, und ich habe nach Best Practices gesucht, aber in diesem Fall scheint dies tatsächlich eine gute Idee zu sein. Dies funktioniert insbesondere, weil sich das Anwendungsdesignmodell niemals ändern würde - Ereignisse werden IMMER mit einer bestimmten Stadt verknüpft.

Der Grundfluss wäre:

Ereignisdaten mit Datum / Ort werden in einem Standardformat wie ISO-8601 JJJJ-MM-TT eingegeben.

Das System konvertiert das Datum in einen UTC-Zeitstempel und speichert das Datum mit dem Ereignis unter Verwendung dieses Zeitstempels und der Stadt-ID für das Ereignis.

Wenn ein Benutzer die Anzeige dieses Ereignisses anfordert, ruft das System den Zeitstempel und die Stadtinformationen ab, die diesem Ereignis zugeordnet sind, und verwendet die Zeitzone der Stadt, um das angezeigte Datum entsprechend zu formatieren.

Ist das eine schreckliche Idee? Hat dies einen Vorteil, und ist das Konzept der Speicherung des TZ-Versatzes dieselbe Idee, um dieses Problem zu beseitigen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage