Em um script bash que converte timestamps em segundos, adiciona alguns segundos e converte o resultado de volta em um timestamp, obtenho um resultado ruim do comando date. Esta é a causa:
$ dt=$(date '+%s' -u --date="2024-11-25 20:31:00")
$ echo $dt
1732566660
$ date '+%F %T' -u --date="$dt seconds"
2079-10-21 22:33:33
O que estou fazendo errado?
Para fornecer um registro de data e hora Unix (segundos desde a época) como entrada para
date
, prefixe-o com@
:Para ver o que
date
realmente aconteceu com sua entrada, use--debug
, que lhe dirá que ele entendeu "n segundos" como significando "+n segundos a partir de agora":