Je connais
date -d @<timestamp in seconds>
et
awk '{print strftime("%c", <timestamp in seconds>)}'
mais si j'ai des millisecondes. Existe-t-il un moyen trivial de le faire sans supprimer les trois derniers caractères de l'horodatage à la milliseconde (ce n'est pas difficile de supprimer des caractères, mais je pense qu'il y aurait un moyen en une étape pour une tâche aussi simple)?
Au lieu de supprimer des caractères, vous pouvez diviser par 1000:
awk '{print strftime("%c", ( <timestamp in milliseconds> + 500 ) / 1000 )}'
Ou:
date -d @$( echo "(MilliSecondTimeStamp + 500) / 1000" | bc)
Modifier: ajusté pour les quotients au lieu de la division. Edit2: Thx zeekvfu, corrigé.
Perl -e 'print scalar localtime(<timestamp> / 1000)'
Ce que j'ai dans mon profil bash sur Mac:
day() {
date -r $(($1 / 1000))
}
day 1486743904359
Retour Fri Feb 10 08:25:04 PST 2017