[LINUX] Lire la base de données tz

Lire la base de données tz

Avez-vous déjà écrit du code qui traite des dates et des heures dans des régions étrangères? Avez-vous déjà écrit un code qui tient compte de l'heure d'été?

Dans cet article, je voudrais présenter la base de données tz, dont de nombreuses personnes, y compris le Japon, peuvent avoir pris en charge sans s'en apercevoir lors du traitement de la date et de l'heure, et également publier un enregistrement de la lecture des informations de définition.

Je pense qu'il y a beaucoup de choses qui ne sont pas exactes, donc si vous avez des questions, veuillez laisser un commentaire ou modifier une demande!

1. Qu'est-ce que la base de données tz?

La base de données tz est publiée sur cette page.

Cité de Wikipedia.

La base de données tz est constituée de données enregistrées par des volontaires collaborant sur des informations d'heure standard (fuseau horaire) dans chaque région du monde. Il est principalement destiné à être utilisé dans les programmes informatiques et les systèmes d'exploitation [3]. L'abréviation est tzdata, également connue sous le nom de base de données zoneinfo, et est également appelée la base de données Olson d'après Arthur David Olson, qui a contribué à la création de la base de données. [4] Paul Eggert est l'éditeur et l'administrateur de la base de données tz. [5] Depuis octobre 2011, l'Internet Corporation for Assigned Names and Numbers (ICANN) et l'Autorité des numéros attribués par Internet (IANA) ont été ajoutés à la direction.

Depuis longtemps, le Japon a adopté l'heure standard de +9 heures à partir de l'heure universelle (UTC) sans adopter l'heure d'été, mais elle est fréquemment modifiée par la politique dans certaines régions étrangères. Par exemple, récemment, le Brésil a aboli l'heure d'été à partir de 2019, et à partir du 28 octobre 2018, Volgograd en Russie a changé l'heure standard de UTC + 03 à UTC + 04.

La base de données tz est une collection de données qui définit les règles de date et d'heure de chaque région du moment au moment, grâce aux efforts de nombreux bénévoles, et le système d'exploitation et les bibliothèques de date et d'heure sont spécifiés en se référant à cette base de données tz. Vous pourrez calculer la date et l'heure appropriées pour votre région.

La version se compose de "<année> <une lettre de l'alphabet>" et augmente comme 2018h-> 2018i-> 2019a-> 2019b. La dernière en date du 5 décembre 2019 est 2019c.

L'ID de chaque zone est comme " / ".

2. Exemple d'utilisation

Les deux points suivants sont listés ici.

Linux

Vérifiez si vous utilisez la base de données tz sur votre Ubuntu 18.04.

Le paquet "tzdata" semble gérer la base de données tz à partir du nom de version de.

$ 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:Données de fuseau horaire et d'heure d'été
Ce package contient les données nécessaires pour implémenter l'heure locale dans de nombreux endroits typiques du monde. Changements de groupe politique aux limites de fuseau horaire, UTC
Il est mis à jour régulièrement pour refléter les décalages et les règles de l'heure d'été.

Lorsque j'ai vérifié la destination d'installation du paquet tzdata, il semble qu'il soit installé dans / user / share / zoneinfo.

$ 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

(Abréviation)

/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

Il n'est pas clair à partir de ces informations seules comment ces données sont traitées, mais au moins Ubuntu semble inclure une base de données tz.

Moment.js

Moment.js est une bibliothèque bien connue pour gérer les dates et heures JavaScript. Moment-timezone est un plug-in pour gérer les fuseaux horaires dans ce Moment.js.

Vous pouvez gérer le fuseau horaire comme suit.

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

Si vous regardez dans le répertoire de données de moment-timezone, vous trouverez des informations qui semblent avoir été générées à partir de la base de données tz.

3. Lisez la définition de la base de données tz

À partir de là, je voudrais voir quelles sont les règles de fuseau horaire actuelles pour chaque région. La lecture est décrite dans tz-how-to.html inclus dans la base de données tz.

La version de la base de données tz que vous lisez cette fois est 2019c. De plus, à partir de maintenant, le mot «présent» doit être interprété comme faisant référence au 6 décembre 2019.

Asia/Tokyo

Pour l'instant, le Japon n'utilise pas l'heure d'été, mais utilise UTC + 9 tout au long de l'année. Sur cette base, regardons la définition de Tokyo au Japon.

La définition de Tokyo est Asie / Tokyo, qui est la suivante.

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

À l'exception des commentaires, la première ligne est définie sur l'heure UTC jusqu'à 15h00 le 31 décembre 1887, de sorte que le paramètre actuel doit appliquer la définition de la deuxième ligne avec JUSQU'À non défini.

La deuxième ligne a maintenant un décalage UTC de 9:00, et le format de l'abréviation de fuseau horaire utilisé à ce moment-là suit "J% sT" selon la définition de Rule Japan décrite plus loin. "% S" est défini sur la lettre LETTER, qui est la colonne définie dans la règle du Japon, qui sera décrite plus tard, "S" ou "D" est défini, et "JST" (heure standard du Japon) ou "JDT" (heure d'été du Japon). Gagner du temps).

Jetons un œil aux règles du «Japon».

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

Sauf pour les commentaires, la première ligne est une règle uniquement pour 1948, et ce sera JDT à partir de 24h00 le premier samedi de mai, et l'heure d'été sera à +1 heure de l'heure standard. La deuxième ligne est la règle pour la période 1948-1951, qui sera JST à partir de 25h00 le deuxième samedi de septembre. La troisième ligne est une règle uniquement pour 1949, et ce sera JDT à partir de 24h00 le premier samedi d'avril, et l'heure d'été sera à +1 heure de l'heure standard. La quatrième ligne est la règle de la période de 1950 à 1951, et ce sera JDT à partir de 24h00 le premier samedi de mai, et l'heure d'été sera à +1 heure de l'heure standard. Telles semblent être les règles lorsque l'heure d'été a été temporairement adoptée après la guerre.

Et il semble que les règles actuelles du «Japon» que je souhaite confirmer ne sont pas écrites.

Je n'ai pas pu trouver ce qui se passerait si aucune règle n'était définie, mais étant donné la situation actuelle au Japon, si aucune règle pour cette période n'était trouvée, la définition de zone resterait STDOFF et le décalage serait Je suppose qu'il sera 9h00, mais qu'en est-il? Je voudrais le savoir plus tard.

Je me suis demandé s'il y avait une définition d'une abréviation de fuseau horaire telle que JST ou JDT quelque part, mais je n'ai rien trouvé d'autre que les commentaires suivants.

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

À l'heure actuelle, les États-Unis ont l'heure d'été de 2 h 00 le deuxième dimanche de mars à 2 h 00 le premier dimanche de novembre. Dans cet esprit, regardons la définition de Los Angeles aux États-Unis.

La définition de Los Angeles est America / Los_Angeles, qui se présente comme suit:

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

Dans "% s" de FORMAT, le caractère de LETTRE, qui est la colonne de la définition de la règle américaine décrite plus loin, est défini, et il devient "PDT", "PST", et ainsi de suite.

À l'exception des commentaires, la première à la troisième ligne est antérieure à 1967 et la définition actuelle de America / Los_Angeles est la quatrième ligne. Sur la 4ème ligne, le décalage actuel est -8: 00, et son format est "P% sT" selon la règle des USA décrite plus loin.

Jetons un coup d'œil aux règles américaines.

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

Pour l'instant, il semble que vous devriez vous référer à la partie suivante.

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

De 2007 à nos jours, la règle "US" définit que PDT (Pacific Daylight Time), c'est-à-dire l'heure d'été, sera adopté à partir de 2h00 le deuxième dimanche de mars, une heure de plus que l'heure standard. Il semble. De 2007 à nos jours, la règle "US" semble être PST (Pacific Standard Time) à partir de 2h00 le premier dimanche de novembre.

Africa/Casablanca

Jusqu'au 28/10/2018, le Maroc définira UTC + 0 en heure standard et UTC + 1 en heure d'été. Nous avions l'habitude de revenir à UTC + 0 quand il était temps pour le Ramadan pendant l'heure d'été et de revenir à UTC + 1 pour l'heure d'été lorsque l'heure du Ramadan était terminée. À partir de 2018, ce sera l'heure d'été toute l'année, et ce sera UTC + 1 de base, et ce sera UTC + 0 à l'heure standard d'origine uniquement pendant la période du Ramadan. De plus, l'heure de début et l'heure de fin de ces périodes semblent différentes chaque année.

Sur cette base, nous regarderons Casablanca au Maroc.

La définition de Casablanca est Afrique / Casablanca, qui est la suivante.

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

Sauf pour les commentaires, la 4ème ligne était à 0 heures du temps standard jusqu'au 28 octobre 2018, et il semble qu'elle suivait la règle appelée Maroc décrite plus tard. Le décalage sur la dernière ligne est de 1h00, ce qui suit également la règle marocaine.

Je ne savais pas si j'interpréterais "+ 00 / + 01" ou "+ 01 / + 00" en FORMAT. Cela signifie-t-il qu'il est généralement du côté gauche du "/" et dans certains cas du côté droit?

Jetons un coup d'œil aux règles du Maroc.

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	-

Il semble que les règles ne soient pas régulières, elles sont donc définies chaque année. Lisons la partie de 2017 à nos jours.

Rule	Morocco	2013	2018	-	Oct	lastSun	 3:00	0	-
Rule	Morocco	2014	2018	-	Mar	lastSun	 2:00	1:00	-
(Abréviation)
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	-

De 2013 à 2018, la règle «Maroc» semble définir l'heure standard à partir de 3 heures le dernier dimanche d'octobre. De 2014 à 2018, il semble qu'une heure sera ajoutée à partir de l'heure standard à partir de 2h00 le dernier dimanche de mars. En 2017, il semble que l'heure standard soit définie à partir de 3h00 le 21 mai. En 2017, il semble qu'une heure sera ajoutée à l'heure standard à partir de 2h00 le 2 juillet. En 2018, il semble que l'heure standard soit définie à partir de 3h00 le 13 mai. En 2018, il semble qu'une heure sera ajoutée à l'heure standard à partir de 2h00 le 17 juin. En 2019, il semble qu'une heure sera déduite de l'heure standard à partir de 3h00 le 5 mai. En 2019, il semble que l'heure standard sera définie à partir de 2h00 le 9 juin.

Je recollerai également la définition de zone ci-dessus qui s'applique après 2016.

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

Compte tenu de ces informations, il semble que 2017-2019 sera la transition suivante.

Définition de la zone UTC + 0 # en heure standard jusqu'au 28 octobre 2018 à 3h00 Comme il sera l'heure standard à partir de 3h00 le dernier dimanche d'octobre 2016, elle passera à UTC + 0 # Heure standard Comme il sera +1 heure standard à partir de 2h00 le dernier dimanche de mars 2017, il passera à UTC + 1 # Heure d'été Puisqu'il sera l'heure standard à partir de 3 heures le 21 mai 2017, il passera à UTC + 0 # début du Ramadan À partir de 2h00 le 2 juillet 2017, il sera +1 heure standard, il passera donc à UTC + 1. #Ramadan end Puisqu'il sera l'heure standard à partir de 3h00 le dernier dimanche d'octobre 2017, elle passera à UTC + 0 # Heure standard de début Comme il sera +1 heure standard à partir de 2 heures le dernier dimanche de mars 2018, il passera à UTC + 1 # Début de l'heure d'été Puisqu'il sera l'heure standard à partir de 3 heures le 13 mai 2018, il passera à UTC + 0 # Début du Ramadan Comme il sera +1 heure standard à partir de 2 heures le 17 juin 2018, il passera à UTC + 1 #Ramadan end Changement de l'heure standard en UTC + 1 à partir de 3:00 le 28 octobre 2018 #Definition of Zone Puisqu'il sera l'heure standard à partir de 3 heures le dernier dimanche (10/28) d'octobre 2018, continuez avec UTC + 1 #Continue heure d'été À partir de 3h00 le 5 mai 2019, il sera -1 heure standard, il passera donc à UTC + 0 # Début du Ramadan Comme ce sera l'heure standard à partir de 14 heures le 9 juin 2019, il passera à UTC + 1 #Ramadan end

Résumé

Ceci conclut la procédure d'orientation et de mise en œuvre de la base de données tz.

Les notes de mise à jour de la base de données tz se trouvent dans le fichier NEWS. En lisant ceci régulièrement, vous pouvez suivre l'évolution des fuseaux horaires dans le monde.

Si vous êtes intéressé par la base de données tz, veuillez lire le fichier NEWS et les informations de fuseau horaire de différentes régions.

Recommended Posts

Lire la base de données tz
Lire le fichier
Lire pid.h