“exportar TZ = 'data +% Z'” leva a uma saída confusa de “data”

2

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:

  1. A suposição descrita acima está correta?
  2. Por que date imprime uma abreviação de fuso horário que não é suportada (isto é, não está disponível em / usr / share / zoneinfo)?
por daniel.neumann 21.06.2017 / 12:34

0 respostas