web-dev-qa-db-ja.com

UNIXコマンドラインからミリ秒のタイムスタンプを日付に変換する

私は知っています

date -d @<timestamp in seconds>

そして

awk '{print strftime("%c", <timestamp in seconds>)}'

しかし、ミリ秒単位の場合はどうなりますか。ミリ秒タイムスタンプの最後の3文字を削除せずにこれを行う簡単な方法はありますか(文字を削除するのは難しいことではありませんが、このような簡単なタスクには1ステップの方法があると思います)。

27
jonderry

文字をドロップする代わりに、1000で割ることができます。

awk '{print strftime("%c", ( <timestamp in milliseconds> + 500 ) / 1000 )}'

または:

date -d @$(  echo "(MilliSecondTimeStamp + 500) / 1000" | bc)

編集:除算ではなく商用に調整。 Edit2:Thx zeekvfu、修正済み。

24
joepd
Perl -e 'print scalar localtime(<timestamp> / 1000)'
13
Greg Hewgill

Macのbashプロファイルにあるもの:

day() {
  date -r $(($1 / 1000))
}

day 1486743904359 戻り値 Fri Feb 10 08:25:04 PST 2017

13
Zaheer