O fuso horário padrão não é fuso horário, ou seja, hora UTC. Não há informações sobre a zona codificada, pois ela pode se tornar incorreta / obsoleta rapidamente.
O relógio do kernel sempre roda no UTC (ou pelo menos o que pensa é o UTC). Por padrão, ele espera ler a hora UTC do relógio de hardware (RTC), mas permite que o processo de inicialização especifique o deslocamento correto da "hora local", já que a maioria dos PCs mantém a hora local no RTC.
O espaço do usuário trabalha com registros de data e hora "época" baseados em UTC, mas lê /etc/localtime
ou a variável de ambiente $TZ
ao exibir as datas. Se nenhum dos dois existir, você receberá o UTC.
Você também pode defini-los explicitamente como "UTC" ou "Etc / UTC" se quiser (por exemplo, export TZ=UTC
para substituir temporariamente a zona do sistema).
Algumas distribuições dividem a configuração, pois os próprios arquivos zoneinfo não têm o nome da zona, portanto, quando o administrador copiou /usr/share/zoneinfo/Europe/London
to /etc/localtime
, não é mais possível saber que era "Europe / London".
Por exemplo, o nome é necessário ao mostrar a zona atual nas telas de configuração ou ao atualizar o arquivo localtime
em cada inicialização (ele precisa ser copiado para / etc novamente sempre que o time zoneinfo for atualizado).
Outras distribuições resolvem isso ligando simbolicamente o arquivo zoneinfo e lendo o destino do symlink. Isso, no entanto, precisa de /usr
para ser montado muito cedo, o que não é apreciado por graybeards.
Os arquivos de configuração não são portáteis; /etc/sysconfig
é específico da Red Hat (o Debian tem /etc/default
). No entanto, em sistemas systemd , a abordagem do link simbólico é sempre usada, e há uma ferramenta timedatectl set-timezone
para alterá-la.