Uma hora demais na formatação de data usando data (1)

0

Se eu executar os seguintes comandos no terminal

start=$(date +%s)
# wait a few seconds …
end=$(date +%s)

time=$(dc <<< "$end $start -p")
echo "$time"

echo "$(date -jr $time +%H:%M:%S)"

Eu recebo a saída estranha

10       # This is ok, I executed the second line ten seconds after the first one
01:00:10 # But here *** where does the one hour come from?

Alguém pode explicar de onde vem o nosso (estou usando o Mac OS 10.8)?
E, se não há como suprimir isso, como mudar a saída ou conseguir a mesma coisa?

    
por JDS 16.06.2013 / 23:33

1 resposta

2

date -jr recebe um timestamp unix (número de segundos desde a meia-noite de 1 de janeiro de 1970 GMT) e converte-o para a hora local equivalente. Estou apostando que você está correndo em um fuso horário que é uma hora à frente do GMT. Dez segundos depois da meia-noite de janeiro de 1970 em GMT é uma hora e dez segundos depois da meia-noite de janeiro de 1970 na CET, por exemplo.

Se você usar a opção "-u", receberá a hora UTC. Então, isso pode funcionar para você:

date -jur 10 '+%H:%M:%S'
    
por 16.06.2013 / 23:40