EUA / Pacífico Qui 25 de agosto 02:12 é Europa / Berlim Qui 25 de agosto 11:12 , como o horário de Berlim é de 9 horas à frente do horário do Pacífico dos EUA
$ TZ=US/Pacific date -d 'Thu Aug 25 02:12' +%s
1472116320
$ TZ=Europe/Berlin date -d 'Thu Aug 25 11:12' +%s
1472116320
Veja as compensações da UTC:
$ TZ=Europe/Berlin date +%z
+0200
$ TZ=US/Pacific date +%z
-0700
Então, seu segundo exemplo funciona . É o terceiro que não funciona .
TZ=DE
é inválido como uma definição de zona padrão ( XXX[offset][YYY[dstoffset]]
), pois tem apenas 2 letras e provavelmente não há um arquivo chamado DE
em / usr / share / zoneinfo, portanto, a hora padrão é UTC. / p>
$ TZ=DE date +%z
+0000
Se você inicializasse seu sistema às 9:12, horário de Berlim, isto é, no horário 1472109120 unix, isso indicaria que seu relógio estava desligado por duas horas no momento em que a entrada foi adicionada em wtmp
.
Essa é uma das primeiras coisas feitas por init
quando o sistema é iniciado. Isso normalmente ocorre antes que os serviços de sincronização de horário de rede (que corrigem o relógio) sejam iniciados. Suas outras entradas em correto wtmp sugerem que o relógio foi corrigido no momento em que a primeira pessoa efetuou login.
Se o seu sistema é de inicialização múltipla e um dos outros sistemas é feito pela Microsoft, observe que os sistemas da Microsoft têm um bug / falha na configuração do relógio do hardware para a hora local em vez do UTC por padrão. Portanto, se o sistema operacional do tipo Unix espera que o relógio do hardware esteja em UTC, haverá um conflito, quando você inicializar no sistema operacional da Microsoft, o sistema operacional tentará mudar o relógio do UTC para o horário local e seu sistema operacional Unix. fará o oposto.
De acordo com lá , parece que não é mais possível consertar os sistemas operacionais da Microsoft, então é necessário contornar isso informando ao sistema operacional Unix que o relógio do hardware está configurado para a hora local como no Windows (e certifique-se de que todos os sistemas operacionais estejam de acordo com o que a hora local significa) (e certifique-se de não desligar ou reinicializar durante uma alteração de horário de verão). Nos sistemas Debian atuais, por exemplo, isso é feito alterando UTC
para LOCAL
em /etc/adjtime
.
Agora, como seu adjtime
já contém LOCAL
, isso exclui essa hipótese. Outras possibilidades: você tem outro sistema que define o relógio como UTC, ou é um sistema da Microsoft onde a hora local é definida como UTC. Alterar LOCAL
para UTC
provavelmente resolveria o problema.
De forma mais geral, você deseja que todos os sistemas operacionais do sistema concordem com o relógio do hardware.