Подтвердить что ты не робот

Bash конвертировать эпоху на сегодняшний день, показывая неправильное время

Как появилась дата преобразования в неправильное время?

result=$(ls /path/to/file/File.*)
#/path/to/file/File.1361234760790

currentIndexTime=${result##*.}
echo "$currentIndexTime"
#1361234760790

date [email protected]"$currentIndexTime"
#Tue 24 Oct 45105 10:53:10 PM GMT
4b9b3361

Ответ 1

Эта конкретная метка времени находится в миллисекундах с эпохи, а не стандартных секунд с эпохи. Разделите на 1000:

$ date -d @1361234760.790
Mon Feb 18 17:46:00 MST 2013

Ответ 2

Вы можете использовать арифметическое расширение bash для выполнения деления:

date -d @$((value/1000))

Обратите внимание, что "value" является переменной bash с $ необязательным; т.е. $value или value.