GMT+09:00
n'est pas un fuseau horaire, il est un UTC offset: une différence (en heures, minutes et secondes) de UTC. Cela signifie simplement "9 heures d'avance sur l'UTC", et ce n'est pas lié à une région ou à un pays en particulier. (la plupart des systèmes, cependant, traite généralement le décalage comme un "type spécial" de fuseau horaire, juste à make things easier).
KST
est un abbreviation for Korea Standard Time, mais n'est pas un "vrai" fuseau horaire. Les noms de fuseaux horaires ne sont pas vraiment standardisés, mais de nombreux systèmes utilisent IANA timezones names (toujours au format Region/City
, comme Asia/Seoul
ou Europe/London
). L'utilisation des abréviations courtes (comme CST
ou KST
) est généralement évitée par les systèmes car ils sont ambiguous and not standard.
Le fuseau horaire Asia/Seoul
utilise l'abréviation KST
aujourd'hui, mais il était également utilisé dans le passé par Asia/Pyongyang
. Cependant, ils ne sont pas la même zone. Un fuseau horaire est un ensemble de décalages différents qu'une région a eu, a et aura au cours de son histoire. Aujourd'hui Asia/Seoul
utilise le décalage +09:00
, mais Asia/Pyongyang
également utilisé dans le passé, donc leurs données historiques sont différentes (et c'est pourquoi ils sont des zones distinctes).
Pyongyang avait le +08:30
offset until 1912, lorsque modifié à +09:00
. Mais en 2015, il a encore changé pour +08:30
et il l'utilise jusqu'à aujourd'hui.
Séoul a different offset history: il a également utilisé +08:30
dans le passé (dans les années 50), avec l'heure d'été (changement à +09:30
pendant l'été), puis en 1961 il changé +09:00
, avait DST pendant un certain temps, et aujourd'hui utilise seulement +09:00
sans DST.
Tous ces changements sont définis par les gouvernements et les lois, et les systèmes n'ont aucun contrôle sur eux. Tout simplement parce qu'un fuseau horaire (une région) utilise un certain décalage aujourd'hui, il n'y a aucune garantie qu'il utilisera pour toujours. Donc, bien que KST
puisse être un "synonyme" de +09:00
aujourd'hui, cela ne veut pas dire que ça sera comme ça pour toujours.
Ainsi, lorsque vous utilisez GMT+09:00
, vous utilisez juste le décalage, sans aucune corrélation avec un fuseau horaire spécifique (parce there are lots of timezones that can use this offset).
Dans le second cas, il semble que la date est convertie de KST
(offffset +09:00
) en UTC (décalage zéro, ou "GMT"). Notez que le premier cas est 20 PM en décalage +09:00
et le second est 11 AM en UTC (décalage zéro, ou "GMT"), ce qui est correct.
Peut-être que JSTL ne peut pas reconnaître KST
(en raison de son ambiguïté) et utilise UTC par défaut. Je vais essayer de le remplacer par Asia/Seoul
et voir ce qui se passe.