Dans la documentation PHP, la liste des fuseaux horaires pris en charge , UTC
est répertoriée deux fois:
UTC
Etc/UTC
Existe-t-il une différence conceptuelle entre ces deux-là ou s'agit-il simplement de synonymes?
Etc/UTC
est le fuseau horaire spécifié dont le nom d'affichage est UTC
. En d'autres termes, il s'agit de noms longs et courts pour le même fuseau horaire, par base de données de fuseaux horaires de l'IANA .
Tout d'abord, pour répondre à la question:
Il n’ya AUCUNE différence entre les fuseaux horaires UTC
et Etc/UTC
.
Etc/UTC
est un fuseau horaire de la base de données Olson-timezone ( tz database ), également appelé IANA-timezones-database , dans lequel tous les fuseaux horaires sont conformes à la convention d'appellation uniforme: Area/Location
.
Certains fuseaux horaires ne pouvant être attribués à aucune région du monde (par exemple, des continents ou des océans), la zone spéciale Etc
( Etcetera ) a été introduite. Cela s'applique principalement aux fuseaux horaires administratifs tels que UTC
.
Ainsi, conformément à la convention de dénomination, le temps universel coordonné (zone) est nommé Etc/UTC
dans la base de données tz.
Pour les fuseaux horaires administratifs autres que UTC (par exemple, GMT+4
, GMT-8
), la base de données tz utilise les signes de style POSIX dans les noms de zone. POSIX a des signes positifs pour les zones situées derrière Greenwich (ouest de Greenwich) et des signes négatifs pour les zones situées en avant de Greenwich (est de Greenwich).
Les signes de style POSIX dans les fuseaux horaires sont à l’opposé de la définition des fuseaux horaires dans le système actuel et largement répandu ISO 8601 . Dans le format de fuseau horaire ISO 8601, des signes négatifs indiquent qu’une zone se trouve derrière l’UTC (ouest de Greenwich) et des signes positifs indiquent qu’une zone est en avance sur UTC (à l’est de Greenwich). C'est ce qui est devenu l'usage standard de nos jours.
Les raisons possibles de la définition opposée dans POSIX sont les suivantes:
ETC/GMT + 4 est identique à GMT-4.
public static void main(String[] args) {
TimeZone tz = TimeZone.getTimeZone("Etc/GMT-7");
System.out.println(tz);
tz = TimeZone.getTimeZone("GMT+7");
System.out.println(tz);
}
Vous pouvez le tester vous-même.
Mais je ne sais pas ce que signifie ETC ..