Recentemente, observei o seguinte comportamento (estranho):
user@pc:~$ date
Mi 21. Jun 12:03:10 CEST 2017
user@pc:~$ date +%Z
CEST
user@pc:~$ export TZ='date +%Z'
user@pc:~$ date
Mi 21. Jun 10:03:30 CEST 2017
user@pc:~$ date +%Z
CEST
Assim, depois de definir a variável de ambiente TZ para o fuso horário atual do sistema, o relógio demora 2 horas. Parece UTC (CEST-2 horas é UTC). Se eu agora definir o TZ para outros valores, o relógio permanece inalterado:
user@pc:~$ export TZ=UTC
user@pc:~$ date
Mi 21. Jun 10:07:09 UTC 2017
user@pc:~$ export TZ=PDT
user@pc:~$ date
Mi 21. Jun 10:07:19 PDT 2017
No entanto, quando eu configuro o TZ para o CEST-2, ele funciona bem novamente. Estou um pouco confusa
user@pc:~$ export TZ=CEST-2
user@pc:~$ date
Mi 21. Jun 12:28:16 CEST 2017
Estou trabalhando no xUbuntu 16.04, mas este comportamento é reproduzível em um sistema OpenSUSE 42.2.
Parece-me que um fuso horário "ABC + X" é sempre considerado como "UTC + X" quando não há um arquivo / usr / share / zoneinfo / ABC (obrigado DevilaN para o comentário). A string "ABC" é inserida apenas na string de data, que é impressa.
Perguntas:
date
imprime uma abreviação de fuso horário que não é suportada (isto é, não está disponível em / usr / share / zoneinfo)?