Conversão de tempo no UNIX / LINUX

0

Eu preciso converter um timestamp unix (número de segundos desde 2000) em um formato padrão legível por humanos. Eu achei que o comando date -d @392603388.257982 funciona como um encanto, mas a data de início padrão é 1970.

    
por Ang 06.03.2017 / 15:03

2 respostas

3

Um registro de data e hora do linux ( wiki ) é contado desde 1º de janeiro de 1970. De onde veio o ano 2000? É uma lição de casa? Se sim, então você poderia usar date mas simplesmente aumentar o timestamp dado (contado a partir de 2000) pelo número de segundos que passaram até o ano 2000 (eu obtive com o seguinte comando: date -u +"%s" -d "1/1/2000" ).

EDITAR: Och, e esteja atento ao fuso horário, é por isso que adicionei a opção -u acima.

    
por 06.03.2017 / 15:14
1

Se o seu número de carimbo de data / hora estiver em segundos, basta adicioná-lo a 2000-01-01T00:00:00 . Com a data do GNU tão simples quanto

date -d "2001-01-01Z +$n seconds"

Eu incluí um Z lá para indicar que a sua época está especificada na hora do Zulu (UTC) - se a sua época estiver na hora local, você deve omitir isso.

    
por 06.03.2017 / 16:41