Erstellen einer kompilierten TZ-Datenbank aus einem Posix-Zeitzonenausdruck

468
Harsh Arya

Ich möchte eine kompilierte TZ-Datenbankdatei aus einem Posix-Ausdruck erstellen.

Gibt es ein Unix-Dienstprogramm, das die TZ-Datenbank aus dem Posix-Ausdruck erstellen kann?

Ich überprüfe den ZIC-Befehl, aber ich konnte keinen Weg finden, Posix-Ausdrucksregeln als Eingabe für den ZIC bereitzustellen. Gibt es eine Möglichkeit, den Posix-Ausdruck mit Zic zu verwenden? z.B. EST5EDT, M10.3.0, M2.3.0

Ich brauche die kompilierte Datenbank, da die Zeitzone über alle Sitzungen hinweg persistent sein soll, damit / etc / localtime mit der kompilierten Datenbank verknüpft werden kann.

Das direkte Setzen der TZ-Variablen auf den posix-Ausdruck hilft nicht, da sie nach dem Neustart nicht über die Sitzung hinaus beständig ist.

0

1 Antwort auf die Frage

0
Matt Johnson

Nein das ist nicht möglich.

POSIX-Regeln können nur die aktuellen Regeln berücksichtigen und können nur eine Paarung von DST-Übergängen enthalten.

Die tz-Datenbank enthält Einträge wie z. B. America/New_York, die alle Zeitzonenregeln für die gesamte Historie der jeweiligen Zeitzone berücksichtigen .

Die Realität von Zeitzonen ist sehr komplex und umfasst unter anderem:

  • Die Sommerzeit wechselt zweimal im Jahr
  • Sommerzeit - Übergänge vier Mal in einem Jahr
  • Der Basisversatz ändert sich einmal in einem bestimmten Jahr
  • Viele dieser Änderungen ändern sich von Jahr zu Jahr, in manchen Fällen auch von Jahr zu Jahr

Weitere Informationen finden Sie im Timezone-Tag-Wiki zu StackOverflow