[LINUX] Lesen Sie die tz-Datenbank

Lesen Sie die tz-Datenbank

Haben Sie jemals Code geschrieben, der sich mit Datum und Uhrzeit in fremden Regionen befasst? Haben Sie jemals Code geschrieben, der die Sommerzeit berücksichtigt?

In diesem Artikel möchte ich die tz-Datenbank vorstellen, um die sich viele Menschen, einschließlich Japan, möglicherweise gekümmert haben, ohne es zu bemerken, wenn sie sich mit Datum und Uhrzeit befassen, und auch eine Aufzeichnung über das Lesen der Definitionsinformationen veröffentlichen.

Ich denke, es gibt viele Dinge, die nicht korrekt sind. Wenn Sie also Fragen haben, hinterlassen Sie bitte einen Kommentar oder eine Bearbeitungsanfrage!

1. Was ist eine tz-Datenbank?

Die tz-Datenbank wird auf dieser Seite veröffentlicht.

Zitiert aus Wikipedia.

Die tz-Datenbank besteht aus Daten, die von Freiwilligen aufgezeichnet wurden, die mit Standardzeitinformationen (Zeitzoneninformationen) in jeder Region der Welt zusammenarbeiten. Es ist hauptsächlich für die Verwendung in Computerprogrammen und Betriebssystemen vorgesehen [3]. Die Abkürzung ist tzdata, auch als Zoneinfo-Datenbank bekannt, und wird nach Arthur David Olson, der zur Erstellung der Datenbank beigetragen hat, auch als Olson-Datenbank bezeichnet. [4] Paul Eggert ist der Herausgeber und Administrator der tz-Datenbank. [5] Seit Oktober 2011 wurden die Internet Corporation für zugewiesene Namen und Nummern (ICANN) und die Internet Assigned Numbers Authority (IANA) zum Management hinzugefügt.

Japan hat lange Zeit die Standardzeit von +9 Stunden ab dem Abkommen World Time (UTC) übernommen, ohne die Sommerzeit zu übernehmen, aber in einigen ausländischen Regionen wird sie häufig von der Politik geändert. So hat Brasilien kürzlich die Sommerzeit ab 2019 abgeschafft, und ab dem 28. Oktober 2018 hat das russische Wolgograd die Standardzeit von UTC + 03 auf UTC + 04 geändert.

Die tz-Datenbank ist eine Sammlung von Daten, die dank der Bemühungen vieler Freiwilliger definiert, welche Datums- und Zeitregeln jede Region von wann bis wann hat. Das Betriebssystem sowie die Datums- und Zeitbibliothek werden unter Bezugnahme auf diese tz-Datenbank angegeben. Sie können das entsprechende Datum und die Uhrzeit für Ihre Region berechnen.

Die Version besteht aus " " und erhöht sich wie 2018h-> 2018i-> 2019a-> 2019b. Spätestens am 5. Dezember 2019 ist 2019c.

Die ID jedes Gebiets lautet " / ".

2. Anwendungsbeispiel

Die folgenden zwei Punkte sind hier aufgelistet.

Linux

Überprüfen Sie, ob Sie die tz-Datenbank auf Ihrem Ubuntu 18.04 verwenden.

Das Paket "tzdata" scheint die tz-Datenbank ab dem Versionsnamen von zu verarbeiten.

$ apt show tzdata
Package: tzdata
Version: 2019c-0ubuntu0.18.04
Priority: important
Section: libs
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: GNU Libc Maintainers <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 3,107 kB
Provides: tzdata-buster
Depends: debconf (>= 0.5) | debconf-2.0
Replaces: libc0.1, libc0.3, libc6, libc6.1
Homepage: https://www.iana.org/time-zones
Task: minimal
Supported: 5y
Download-Size: 190 kB
APT-Manual-Installed: yes
APT-Sources: http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
Description:Zeitzonen- und Sommerzeitdaten
Dieses Paket enthält die Daten, die zur Implementierung der Ortszeit an vielen typischen Orten auf der ganzen Welt erforderlich sind. Änderungen der politischen Gruppe an Zeitzonengrenzen, UTC
Es wird regelmäßig aktualisiert, um Offsets und Sommerzeitregeln widerzuspiegeln.

Als ich das Installationsziel des tzdata-Pakets überprüft habe, scheint es in / user / share / zoneinfo installiert zu sein.

$ dpkg -L tzdata
/.
/usr
/usr/sbin
/usr/sbin/tzconfig
/usr/share
/usr/share/doc
/usr/share/doc/tzdata
/usr/share/doc/tzdata/README.Debian
/usr/share/doc/tzdata/changelog.Debian.gz
/usr/share/doc/tzdata/copyright
/usr/share/zoneinfo
/usr/share/zoneinfo/Africa
/usr/share/zoneinfo/Africa/Abidjan
/usr/share/zoneinfo/Africa/Accra
/usr/share/zoneinfo/Africa/Addis_Ababa
/usr/share/zoneinfo/Africa/Algiers
/usr/share/zoneinfo/Africa/Bangui
/usr/share/zoneinfo/Africa/Bissau
/usr/share/zoneinfo/Africa/Blantyre
/usr/share/zoneinfo/Africa/Casablanca

(Abkürzung)

/usr/share/zoneinfo/right/US/Hawaii
/usr/share/zoneinfo/right/US/Indiana-Starke
/usr/share/zoneinfo/right/US/Michigan
/usr/share/zoneinfo/right/US/Mountain
/usr/share/zoneinfo/right/US/Pacific
/usr/share/zoneinfo/right/US/Pacific-New
/usr/share/zoneinfo/right/US/Samoa
/usr/share/zoneinfo/right/UTC
/usr/share/zoneinfo/right/Universal
/usr/share/zoneinfo/right/Zulu

Aus diesen Informationen allein ist nicht ersichtlich, wie mit diesen Daten umgegangen wird, aber zumindest scheint Ubuntu eine tz-Datenbank zu enthalten.

Moment.js

Moment.js ist eine bekannte Bibliothek für den Umgang mit Datum und Uhrzeit von JavaScript. Moment-Timezone ist ein Plug-In für die Behandlung von Zeitzonen in dieser Moment.js.

Sie können die Zeitzone wie folgt behandeln.

sample.js


const moment = require('moment-timezone');

console.log(moment.tz('2019-01-05 12:00', 'UTC').tz('America/New_York').format()); // 2019-01-05T07:00:00-05:00
console.log(moment.tz('2019-07-05 12:00', 'UTC').tz('America/New_York').format()); // 2019-07-05T08:00:00-04:00

Wenn Sie in das Datenverzeichnis von moment-timezone schauen, finden Sie Informationen, die auf der Grundlage der tz-Datenbank generiert wurden.

3. Lesen Sie die Definition der tz-Datenbank

Von hier aus würde ich gerne sehen, wie die aktuellen Zeitzonenregeln für jede Region lauten. Das Lesen wird in tz-how-to.html beschrieben, das in der tz-Datenbank enthalten ist.

Die Version der tz-Datenbank, die Sie dieses Mal lesen, ist 2019c. Von nun an sollte das Wort "Gegenwart" so interpretiert werden, dass es sich auf den Stand vom 6. Dezember 2019 bezieht.

Asia/Tokyo

Japan verwendet derzeit keine Sommerzeit, sondern das ganze Jahr über UTC + 9. Schauen wir uns auf dieser Grundlage die Definition von Tokio in Japan an.

Die Definition von Tokio lautet Asien / Tokio und lautet wie folgt.

https://github.com/eggert/tz/blob/2019c/asia#L1910-L1912

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone	Asia/Tokyo	9:18:59	-	LMT	1887 Dec 31 15:00u
			9:00	Japan	J%sT

Mit Ausnahme von Kommentaren wird die erste Zeile bis zum 31. Dezember 1887 bis 15:00 Uhr auf UTC eingestellt. Daher sollte die aktuelle Einstellung die Definition der zweiten Zeile anwenden, wobei UNTIL nicht festgelegt ist.

Die zweite Zeile hat jetzt einen UTC-Versatz von 9:00, und das Format der zu diesem Zeitpunkt verwendeten Zeitzonenabkürzung folgt "J% sT" gemäß der später beschriebenen Definition von Regel Japan. "% S" wird auf den Buchstaben LETTER gesetzt, der die in Japans Regel definierte Spalte ist, die später beschrieben wird. "S" oder "D" wird gesetzt und "JST" (Japan Standard Time) oder "JDT" (Japan Daylight). Zeit sparen).

Werfen wir einen Blick auf die Regeln von "Japan".

https://github.com/eggert/tz/blob/2019c/asia#L1873-L1877

# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
Rule	Japan	1948	only	-	May	Sat>=1	24:00	1:00	D
Rule	Japan	1948	1951	-	Sep	Sat>=8	25:00	0	S
Rule	Japan	1949	only	-	Apr	Sat>=1	24:00	1:00	D
Rule	Japan	1950	1951	-	May	Sat>=1	24:00	1:00	D

Mit Ausnahme von Kommentaren ist die erste Zeile eine Regel nur für 1948, und es wird JDT ab 24:00 Uhr am ersten Samstag im Mai sein, und die Sommerzeit wird +1 Stunde von der Standardzeit entfernt sein. Die zweite Zeile ist die Regel für den Zeitraum 1948-1951, der am zweiten Samstag im September ab 25:00 Uhr JST sein wird. Die dritte Zeile ist eine Regel nur für 1949 und wird am ersten Samstag im April ab 24:00 Uhr JDT sein, und die Sommerzeit wird +1 Stunde von der Standardzeit entfernt sein. Die vierte Zeile ist die Regel des Zeitraums von 1950 bis 1951 und wird am ersten Samstag im Mai ab 24:00 Uhr JDT sein, und die Sommerzeit wird +1 Stunde von der Standardzeit entfernt sein. Dies scheinen die Regeln zu sein, als die Sommerzeit nach dem Krieg vorübergehend verabschiedet wurde.

Und es scheint, dass die aktuellen "Japan" -Regeln, die ich bestätigen möchte, nicht geschrieben sind.

Ich konnte nicht finden, was passieren würde, wenn keine Regeln festgelegt würden, aber angesichts der aktuellen Situation in Japan würde die Zonendefinition STDOFF bleiben und der Versatz wäre, wenn keine Regeln für diesen Zeitraum gefunden würden Ich vermute, es wird 9:00 Uhr sein, aber was ist damit? Ich würde es gerne zu einem späteren Zeitpunkt herausfinden.

Ich habe mich gefragt, ob es irgendwo eine Definition für eine Zeitzonenabkürzung wie JST oder JDT gibt, aber ich konnte nichts anderes als die folgenden Kommentare finden.

https://github.com/eggert/tz/blob/2019c/asia#L40-L55

# The following alphabetic abbreviations appear in these tables
# (corrections are welcome):
#	     std  dst
#	     LMT	Local Mean Time
#	2:00 EET  EEST	Eastern European Time
#	2:00 IST  IDT	Israel
#	5:30 IST	India
#	7:00 WIB	west Indonesia (Waktu Indonesia Barat)
#	8:00 WITA	central Indonesia (Waktu Indonesia Tengah)
#	8:00 CST	China
#	8:00 HKT  HKST	Hong Kong (HKWT* for Winter Time in late 1941)
#	8:00 PST  PDT*	Philippines
#	8:30 KST  KDT	Korea when at +0830
#	9:00 WIT	east Indonesia (Waktu Indonesia Timur)
#	9:00 JST  JDT	Japan
#	9:00 KST  KDT	Korea when at +09

America/Los_Angeles

Ab sofort haben die Vereinigten Staaten Sommerzeit von 2:00 Uhr am zweiten Sonntag im März bis 2:00 Uhr am ersten Sonntag im November. Schauen wir uns vor diesem Hintergrund die Definition von Los Angeles in den USA an.

Die Definition von Los Angeles lautet America / Los_Angeles und lautet wie folgt:

https://github.com/eggert/tz/blob/2019c/northamerica#L562-L566

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone America/Los_Angeles -7:52:58 -	LMT	1883 Nov 18 12:07:02
			-8:00	US	P%sT	1946
			-8:00	CA	P%sT	1967
			-8:00	US	P%sT

In "% s" von FORMAT wird das Zeichen von LETTER gesetzt, das die Spalte der später beschriebenen Definition der US-Regel ist, und es wird zu "PDT", "PST" usw.

Mit Ausnahme von Kommentaren stehen die erste bis dritte Zeile vor 1967, und die aktuelle Definition von America / Los_Angeles ist die vierte Zeile. In der 4. Zeile beträgt der aktuelle Versatz -8: 00 und das Format ist "P% sT" gemäß der später beschriebenen US-Regel.

Werfen wir einen Blick auf die US-Regeln.

https://github.com/eggert/tz/blob/2019c/northamerica#L173-L186

# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
Rule	US	1918	1919	-	Mar	lastSun	2:00	1:00	D
Rule	US	1918	1919	-	Oct	lastSun	2:00	0	S
Rule	US	1942	only	-	Feb	9	2:00	1:00	W # War
Rule	US	1945	only	-	Aug	14	23:00u	1:00	P # Peace
Rule	US	1945	only	-	Sep	30	2:00	0	S
Rule	US	1967	2006	-	Oct	lastSun	2:00	0	S
Rule	US	1967	1973	-	Apr	lastSun	2:00	1:00	D
Rule	US	1974	only	-	Jan	6	2:00	1:00	D
Rule	US	1975	only	-	Feb	lastSun	2:00	1:00	D
Rule	US	1976	1986	-	Apr	lastSun	2:00	1:00	D
Rule	US	1987	2006	-	Apr	Sun>=1	2:00	1:00	D
Rule	US	2007	max	-	Mar	Sun>=8	2:00	1:00	D
Rule	US	2007	max	-	Nov	Sun>=1	2:00	0	S

Im Moment sollten Sie sich auf den folgenden Teil beziehen.

Rule US 2007 max - Mar Sun>=8 2:00 1:00 D Rule US 2007 max - Nov Sun>=1 2:00 0 S

Von 2007 bis heute definiert die "US" -Regel, dass die PDT (Pacific Daylight Time), dh die Sommerzeit, ab 2:00 Uhr am zweiten Sonntag im März übernommen wird, eine Stunde mehr als die Standardzeit. Es scheint, dass. Von 2007 bis heute scheint die "US" -Regel PST (Pacific Standard Time) ab 2:00 Uhr am ersten Sonntag im November zu sein.

Africa/Casablanca

Bis zum 28.10.2018 verwendet Marokko UTC + 0 in der Standardzeit und UTC + 1 in der Sommerzeit. Wir gingen zurück zu UTC + 0, als es im Sommer Zeit für den Ramadan war, und zurück zu UTC + 1 für die Sommerzeit, als die Zeit für den Ramadan vorbei war. Ab 2018 ist das ganze Jahr über Sommer, UTC + 1 und UTC + 0 in der ursprünglichen Standardzeit nur während der Ramadan-Zeit. Darüber hinaus scheinen die Start- und Endzeit dieser Zeiträume jedes Jahr unterschiedlich zu sein.

Auf dieser Grundlage werden wir uns Casablanca in Marokko ansehen.

Die Definition von Casablanca lautet Afrika / Casablanca und lautet wie folgt.

https://github.com/eggert/tz/blob/2019c/africa#L1086-L1091

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Africa/Casablanca	-0:30:20 -	LMT	1913 Oct 26
			 0:00	Morocco	+00/+01	1984 Mar 16
			 1:00	-	+01	1986
			 0:00	Morocco	+00/+01	2018 Oct 28  3:00
			 1:00	Morocco	+01/+00

Mit Ausnahme von Kommentaren war die 4. Zeile bis zum 28. Oktober 2018 in der Standardzeit 0 Uhr, und es scheint, dass sie der später beschriebenen Regel namens Marokko folgte. Der Versatz in der letzten Zeile beträgt 1:00, was ebenfalls der Marokko-Regel folgt.

Ich wusste nicht, ob ich FORMATs "+ 00 / + 01" oder "+ 01 / + 00" auf die gleiche Weise interpretieren würde. Bedeutet das, dass es sich normalerweise auf der linken Seite des "/" und in einigen Fällen auf der rechten Seite befindet?

Werfen wir einen Blick auf die Regeln Marokkos.

https://github.com/eggert/tz/blob/2019c/africa#L897-L1080

# RULE	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
Rule	Morocco	1939	only	-	Sep	12	 0:00	1:00	-
Rule	Morocco	1939	only	-	Nov	19	 0:00	0	-
Rule	Morocco	1940	only	-	Feb	25	 0:00	1:00	-
Rule	Morocco	1945	only	-	Nov	18	 0:00	0	-
Rule	Morocco	1950	only	-	Jun	11	 0:00	1:00	-
Rule	Morocco	1950	only	-	Oct	29	 0:00	0	-
Rule	Morocco	1967	only	-	Jun	 3	12:00	1:00	-
Rule	Morocco	1967	only	-	Oct	 1	 0:00	0	-
Rule	Morocco	1974	only	-	Jun	24	 0:00	1:00	-
Rule	Morocco	1974	only	-	Sep	 1	 0:00	0	-
Rule	Morocco	1976	1977	-	May	 1	 0:00	1:00	-
Rule	Morocco	1976	only	-	Aug	 1	 0:00	0	-
Rule	Morocco	1977	only	-	Sep	28	 0:00	0	-
Rule	Morocco	1978	only	-	Jun	 1	 0:00	1:00	-
Rule	Morocco	1978	only	-	Aug	 4	 0:00	0	-
Rule	Morocco	2008	only	-	Jun	 1	 0:00	1:00	-
Rule	Morocco	2008	only	-	Sep	 1	 0:00	0	-
Rule	Morocco	2009	only	-	Jun	 1	 0:00	1:00	-
Rule	Morocco	2009	only	-	Aug	21	 0:00	0	-
Rule	Morocco	2010	only	-	May	 2	 0:00	1:00	-
Rule	Morocco	2010	only	-	Aug	 8	 0:00	0	-
Rule	Morocco	2011	only	-	Apr	 3	 0:00	1:00	-
Rule	Morocco	2011	only	-	Jul	31	 0:00	0	-
Rule	Morocco	2012	2013	-	Apr	lastSun	 2:00	1:00	-
Rule	Morocco	2012	only	-	Jul	20	 3:00	0	-
Rule	Morocco	2012	only	-	Aug	20	 2:00	1:00	-
Rule	Morocco	2012	only	-	Sep	30	 3:00	0	-
Rule	Morocco	2013	only	-	Jul	 7	 3:00	0	-
Rule	Morocco	2013	only	-	Aug	10	 2:00	1:00	-
Rule	Morocco	2013	2018	-	Oct	lastSun	 3:00	0	-
Rule	Morocco	2014	2018	-	Mar	lastSun	 2:00	1:00	-
Rule	Morocco	2014	only	-	Jun	28	 3:00	0	-
Rule	Morocco	2014	only	-	Aug	 2	 2:00	1:00	-
Rule	Morocco	2015	only	-	Jun	14	 3:00	0	-
Rule	Morocco	2015	only	-	Jul	19	 2:00	1:00	-
Rule	Morocco	2016	only	-	Jun	 5	 3:00	0	-
Rule	Morocco	2016	only	-	Jul	10	 2:00	1:00	-
Rule	Morocco	2017	only	-	May	21	 3:00	0	-
Rule	Morocco	2017	only	-	Jul	 2	 2:00	1:00	-
Rule	Morocco	2018	only	-	May	13	 3:00	0	-
Rule	Morocco	2018	only	-	Jun	17	 2:00	1:00	-
Rule	Morocco	2019	only	-	May	 5	 3:00	-1:00	-
Rule	Morocco	2019	only	-	Jun	 9	 2:00	0	-
Rule	Morocco	2020	only	-	Apr	19	 3:00	-1:00	-
Rule	Morocco	2020	only	-	May	24	 2:00	0	-
Rule	Morocco	2021	only	-	Apr	11	 3:00	-1:00	-
Rule	Morocco	2021	only	-	May	16	 2:00	0	-
Rule	Morocco	2022	only	-	Mar	27	 3:00	-1:00	-
Rule	Morocco	2022	only	-	May	 8	 2:00	0	-
Rule	Morocco	2023	only	-	Mar	19	 3:00	-1:00	-
Rule	Morocco	2023	only	-	Apr	23	 2:00	0	-
Rule	Morocco	2024	only	-	Mar	10	 3:00	-1:00	-
Rule	Morocco	2024	only	-	Apr	14	 2:00	0	-
Rule	Morocco	2025	only	-	Feb	23	 3:00	-1:00	-
Rule	Morocco	2025	only	-	Apr	 6	 2:00	0	-
Rule	Morocco	2026	only	-	Feb	15	 3:00	-1:00	-
Rule	Morocco	2026	only	-	Mar	22	 2:00	0	-
Rule	Morocco	2027	only	-	Feb	 7	 3:00	-1:00	-
Rule	Morocco	2027	only	-	Mar	14	 2:00	0	-
Rule	Morocco	2028	only	-	Jan	23	 3:00	-1:00	-
Rule	Morocco	2028	only	-	Feb	27	 2:00	0	-
Rule	Morocco	2029	only	-	Jan	14	 3:00	-1:00	-
Rule	Morocco	2029	only	-	Feb	18	 2:00	0	-
Rule	Morocco	2029	only	-	Dec	30	 3:00	-1:00	-
Rule	Morocco	2030	only	-	Feb	10	 2:00	0	-
Rule	Morocco	2030	only	-	Dec	22	 3:00	-1:00	-
Rule	Morocco	2031	only	-	Jan	26	 2:00	0	-
Rule	Morocco	2031	only	-	Dec	14	 3:00	-1:00	-
Rule	Morocco	2032	only	-	Jan	18	 2:00	0	-
Rule	Morocco	2032	only	-	Nov	28	 3:00	-1:00	-
Rule	Morocco	2033	only	-	Jan	 9	 2:00	0	-
Rule	Morocco	2033	only	-	Nov	20	 3:00	-1:00	-
Rule	Morocco	2033	only	-	Dec	25	 2:00	0	-
Rule	Morocco	2034	only	-	Nov	 5	 3:00	-1:00	-
Rule	Morocco	2034	only	-	Dec	17	 2:00	0	-
Rule	Morocco	2035	only	-	Oct	28	 3:00	-1:00	-
Rule	Morocco	2035	only	-	Dec	 2	 2:00	0	-
Rule	Morocco	2036	only	-	Oct	19	 3:00	-1:00	-
Rule	Morocco	2036	only	-	Nov	23	 2:00	0	-
Rule	Morocco	2037	only	-	Oct	 4	 3:00	-1:00	-
Rule	Morocco	2037	only	-	Nov	15	 2:00	0	-
Rule	Morocco	2038	only	-	Sep	26	 3:00	-1:00	-
Rule	Morocco	2038	only	-	Oct	31	 2:00	0	-
Rule	Morocco	2039	only	-	Sep	18	 3:00	-1:00	-
Rule	Morocco	2039	only	-	Oct	23	 2:00	0	-
Rule	Morocco	2040	only	-	Sep	 2	 3:00	-1:00	-
Rule	Morocco	2040	only	-	Oct	14	 2:00	0	-
Rule	Morocco	2041	only	-	Aug	25	 3:00	-1:00	-
Rule	Morocco	2041	only	-	Sep	29	 2:00	0	-
Rule	Morocco	2042	only	-	Aug	10	 3:00	-1:00	-
Rule	Morocco	2042	only	-	Sep	21	 2:00	0	-
Rule	Morocco	2043	only	-	Aug	 2	 3:00	-1:00	-
Rule	Morocco	2043	only	-	Sep	 6	 2:00	0	-
Rule	Morocco	2044	only	-	Jul	24	 3:00	-1:00	-
Rule	Morocco	2044	only	-	Aug	28	 2:00	0	-
Rule	Morocco	2045	only	-	Jul	 9	 3:00	-1:00	-
Rule	Morocco	2045	only	-	Aug	20	 2:00	0	-
Rule	Morocco	2046	only	-	Jul	 1	 3:00	-1:00	-
Rule	Morocco	2046	only	-	Aug	 5	 2:00	0	-
Rule	Morocco	2047	only	-	Jun	23	 3:00	-1:00	-
Rule	Morocco	2047	only	-	Jul	28	 2:00	0	-
Rule	Morocco	2048	only	-	Jun	 7	 3:00	-1:00	-
Rule	Morocco	2048	only	-	Jul	19	 2:00	0	-
Rule	Morocco	2049	only	-	May	30	 3:00	-1:00	-
Rule	Morocco	2049	only	-	Jul	 4	 2:00	0	-
Rule	Morocco	2050	only	-	May	15	 3:00	-1:00	-
Rule	Morocco	2050	only	-	Jun	26	 2:00	0	-
Rule	Morocco	2051	only	-	May	 7	 3:00	-1:00	-
Rule	Morocco	2051	only	-	Jun	11	 2:00	0	-
Rule	Morocco	2052	only	-	Apr	28	 3:00	-1:00	-
Rule	Morocco	2052	only	-	Jun	 2	 2:00	0	-
Rule	Morocco	2053	only	-	Apr	13	 3:00	-1:00	-
Rule	Morocco	2053	only	-	May	25	 2:00	0	-
Rule	Morocco	2054	only	-	Apr	 5	 3:00	-1:00	-
Rule	Morocco	2054	only	-	May	10	 2:00	0	-
Rule	Morocco	2055	only	-	Mar	28	 3:00	-1:00	-
Rule	Morocco	2055	only	-	May	 2	 2:00	0	-
Rule	Morocco	2056	only	-	Mar	12	 3:00	-1:00	-
Rule	Morocco	2056	only	-	Apr	23	 2:00	0	-
Rule	Morocco	2057	only	-	Mar	 4	 3:00	-1:00	-
Rule	Morocco	2057	only	-	Apr	 8	 2:00	0	-
Rule	Morocco	2058	only	-	Feb	17	 3:00	-1:00	-
Rule	Morocco	2058	only	-	Mar	31	 2:00	0	-
Rule	Morocco	2059	only	-	Feb	 9	 3:00	-1:00	-
Rule	Morocco	2059	only	-	Mar	16	 2:00	0	-
Rule	Morocco	2060	only	-	Feb	 1	 3:00	-1:00	-
Rule	Morocco	2060	only	-	Mar	 7	 2:00	0	-
Rule	Morocco	2061	only	-	Jan	16	 3:00	-1:00	-
Rule	Morocco	2061	only	-	Feb	27	 2:00	0	-
Rule	Morocco	2062	only	-	Jan	 8	 3:00	-1:00	-
Rule	Morocco	2062	only	-	Feb	12	 2:00	0	-
Rule	Morocco	2062	only	-	Dec	31	 3:00	-1:00	-
Rule	Morocco	2063	only	-	Feb	 4	 2:00	0	-
Rule	Morocco	2063	only	-	Dec	16	 3:00	-1:00	-
Rule	Morocco	2064	only	-	Jan	20	 2:00	0	-
Rule	Morocco	2064	only	-	Dec	 7	 3:00	-1:00	-
Rule	Morocco	2065	only	-	Jan	11	 2:00	0	-
Rule	Morocco	2065	only	-	Nov	22	 3:00	-1:00	-
Rule	Morocco	2066	only	-	Jan	 3	 2:00	0	-
Rule	Morocco	2066	only	-	Nov	14	 3:00	-1:00	-
Rule	Morocco	2066	only	-	Dec	19	 2:00	0	-
Rule	Morocco	2067	only	-	Nov	 6	 3:00	-1:00	-
Rule	Morocco	2067	only	-	Dec	11	 2:00	0	-
Rule	Morocco	2068	only	-	Oct	21	 3:00	-1:00	-
Rule	Morocco	2068	only	-	Dec	 2	 2:00	0	-
Rule	Morocco	2069	only	-	Oct	13	 3:00	-1:00	-
Rule	Morocco	2069	only	-	Nov	17	 2:00	0	-
Rule	Morocco	2070	only	-	Oct	 5	 3:00	-1:00	-
Rule	Morocco	2070	only	-	Nov	 9	 2:00	0	-
Rule	Morocco	2071	only	-	Sep	20	 3:00	-1:00	-
Rule	Morocco	2071	only	-	Oct	25	 2:00	0	-
Rule	Morocco	2072	only	-	Sep	11	 3:00	-1:00	-
Rule	Morocco	2072	only	-	Oct	16	 2:00	0	-
Rule	Morocco	2073	only	-	Aug	27	 3:00	-1:00	-
Rule	Morocco	2073	only	-	Oct	 8	 2:00	0	-
Rule	Morocco	2074	only	-	Aug	19	 3:00	-1:00	-
Rule	Morocco	2074	only	-	Sep	23	 2:00	0	-
Rule	Morocco	2075	only	-	Aug	11	 3:00	-1:00	-
Rule	Morocco	2075	only	-	Sep	15	 2:00	0	-
Rule	Morocco	2076	only	-	Jul	26	 3:00	-1:00	-
Rule	Morocco	2076	only	-	Sep	 6	 2:00	0	-
Rule	Morocco	2077	only	-	Jul	18	 3:00	-1:00	-
Rule	Morocco	2077	only	-	Aug	22	 2:00	0	-
Rule	Morocco	2078	only	-	Jul	10	 3:00	-1:00	-
Rule	Morocco	2078	only	-	Aug	14	 2:00	0	-
Rule	Morocco	2079	only	-	Jun	25	 3:00	-1:00	-
Rule	Morocco	2079	only	-	Jul	30	 2:00	0	-
Rule	Morocco	2080	only	-	Jun	16	 3:00	-1:00	-
Rule	Morocco	2080	only	-	Jul	21	 2:00	0	-
Rule	Morocco	2081	only	-	Jun	 1	 3:00	-1:00	-
Rule	Morocco	2081	only	-	Jul	13	 2:00	0	-
Rule	Morocco	2082	only	-	May	24	 3:00	-1:00	-
Rule	Morocco	2082	only	-	Jun	28	 2:00	0	-
Rule	Morocco	2083	only	-	May	16	 3:00	-1:00	-
Rule	Morocco	2083	only	-	Jun	20	 2:00	0	-
Rule	Morocco	2084	only	-	Apr	30	 3:00	-1:00	-
Rule	Morocco	2084	only	-	Jun	11	 2:00	0	-
Rule	Morocco	2085	only	-	Apr	22	 3:00	-1:00	-
Rule	Morocco	2085	only	-	May	27	 2:00	0	-
Rule	Morocco	2086	only	-	Apr	14	 3:00	-1:00	-
Rule	Morocco	2086	only	-	May	19	 2:00	0	-
Rule	Morocco	2087	only	-	Mar	30	 3:00	-1:00	-
Rule	Morocco	2087	only	-	May	 4	 2:00	0	-

Es scheint, dass die Regeln nicht regelmäßig sind, daher werden sie jedes Jahr definiert. Lesen wir den Teil von 2017 bis heute.

Rule	Morocco	2013	2018	-	Oct	lastSun	 3:00	0	-
Rule	Morocco	2014	2018	-	Mar	lastSun	 2:00	1:00	-
(Abkürzung)
Rule	Morocco	2017	only	-	May	21	 3:00	0	-
Rule	Morocco	2017	only	-	Jul	 2	 2:00	1:00	-
Rule	Morocco	2018	only	-	May	13	 3:00	0	-
Rule	Morocco	2018	only	-	Jun	17	 2:00	1:00	-
Rule	Morocco	2019	only	-	May	 5	 3:00	-1:00	-
Rule	Morocco	2019	only	-	Jun	 9	 2:00	0	-

Von 2013 bis 2018 scheint die "Marokko" -Regel die Standardzeit ab 3:00 Uhr am letzten Sonntag im Oktober zu definieren. Von 2014 bis 2018 wird anscheinend eine Stunde von der Standardzeit ab 2:00 Uhr am letzten Sonntag im März hinzugefügt. Im Jahr 2017 scheint die Standardzeit ab 3:00 Uhr am 21. Mai festgelegt zu sein. Im Jahr 2017 wird anscheinend eine Stunde zur Standardzeit ab 2:00 Uhr am 2. Juli hinzugefügt. Im Jahr 2018 scheint die Standardzeit ab 3:00 Uhr am 13. Mai festgelegt zu sein. Im Jahr 2018 wird anscheinend eine Stunde zur Standardzeit ab 2:00 Uhr am 17. Juni hinzugefügt. Im Jahr 2019 wird anscheinend eine Stunde von der Standardzeit ab 3:00 Uhr am 5. Mai abgezogen. Im Jahr 2019 wird die Standardzeit anscheinend ab dem 9. Juni ab 2:00 Uhr festgelegt.

Ich werde auch die obige Zonendefinition, die nach 2016 gilt, erneut einfügen.

# Zone	NAME		STDOFF	RULES	FORMAT	[UNTIL]
Zone Africa/Casablanca	 (Abkürzung)
                         (Abkürzung)
			 0:00	Morocco	+00/+01	2018 Oct 28  3:00
			 1:00	Morocco	+01/+00

In Anbetracht dieser Informationen scheint 2017-2019 der folgende Übergang zu sein.

Definition von UTC + 0 # Zone in der Standardzeit bis 3:00 Uhr am 28. Oktober 2018 Da es am letzten Sonntag im Oktober 2016 ab 3:00 Uhr Standardzeit ist, ändert es sich in UTC + 0 # Standardzeit starten Da es am letzten Sonntag im März 2017 ab 2:00 Uhr +1 Standardzeit ist, wird es auf UTC + 1 # Sommerzeitstart geändert Da es am 21. Mai 2017 ab 3 Uhr Standardzeit ist, ändert sich der Start in UTC + 0 # Ramadan Ab 2:00 Uhr am 2. Juli 2017 ist es +1 Standardzeit, daher wird es auf UTC + 1 geändert. #Ramadan end Da es am letzten Sonntag im Oktober 2017 ab 3:00 Uhr Standardzeit ist, ändert es sich in UTC + 0 # Standardzeit starten Da es am letzten Sonntag im März 2018 ab 2 Uhr +1 Standardzeit ist, wird es auf UTC + 1 # Sommerzeitstart geändert Da es am 13. Mai 2018 ab 3 Uhr Standardzeit ist, wird es auf UTC + 0 # Ramadan-Start geändert Da es ab dem 17. Juni 2018 ab 2 Uhr +1 Standardzeit ist, wird es auf UTC + 1 # Ramadan-Ende geändert Die Standardzeit wurde am 28. Oktober 2018 von 3:00 Uhr auf UTC + 1 geändert. #Definition of Zone Da es am letzten Sonntag (28.10.) Oktober 2018 ab 3 Uhr Standardzeit ist, fahren Sie mit UTC + 1 fort. # Fortsetzung der Sommerzeit Ab 3:00 Uhr am 5. Mai 2019 ist es Standardzeit -1, daher wird der Start in UTC + 0 # Ramadan geändert Da es am 9. Juni 2019 ab 2 Uhr Standardzeit ist, wird es auf UTC + 1 # Ramadan-Ende geändert

Zusammenfassung

Damit ist das Leit- und Implementierungsverfahren für die tz-Datenbank abgeschlossen.

Versionshinweise für die tz-Datenbank finden Sie in der Datei NEWS. Wenn Sie dies regelmäßig lesen, können Sie verfolgen, wie sich die Zeitzonen in der Welt ändern.

Wenn Sie an einer tz-Datenbank interessiert sind, lesen Sie bitte die NEWS-Datei und die Zeitzoneninformationen verschiedener Regionen.

Recommended Posts

Lesen Sie die tz-Datenbank
Datei lesen
Lesen Sie pid.h.