date -r
quase faz o trabalho. Tudo o que você precisa fazer é mudar a origem, o que é uma adição.
date -r $((number_of_seconds - epoch))
em que epoch
é o número de segundos entre 1º de janeiro e 1º de janeiro de 1970. O valor de epoch
depende do seu calendário.
No calendário gregoriano, há 477 anos bissextos entre 1 e 1970, portanto, 365 * 1969 + 477 = 719162 dias = 62135596800 segundos. Note que este número é maior do que 2 32 , então você precisará de um shell capaz de aritmética de 64 bits para lidar com isso. Seu number_of_seconds
será mais do que 2 32 de qualquer forma se representar datas além do segundo século dC. Eu acho que o bash suporta aritmética de 64 bits mesmo em OSX de 32 bits mais antigo, mas não tenho certeza.
date -r $((number_of_seconds - 62135596800))