bashでUnix時代以降の日付をミリ秒に変換するには?

bashでUnix時代以降の日付をミリ秒に変換するには?

日付形式があります。

22-Sep-2014 10:32:35

13桁のタイムスタンプが必要ですが、このように変換すると

time=$(date -d "$DATE" '+%s')

10桁の数字を受け取りました。

私が試したとき

tt=$(date -d "$DATE");
time=$($tt +'%s * 1000 + %-N / 1000000')

わかりました。

line 22: Mon: command not found

ベストアンサー1

date2番目の試みは非常に近いです。最後にミリ秒を追加するように指示します。%Nフォーマッタを使用してこれを行うことができます。%Nナノ秒まで伸びてから%3N
ただし、入力の例にはミリ秒がないため、.000最後に追加できます。
これが望ましくないと仮定すると、次はミリ秒精度を提供する例です。

$ DATE="22-Sep-2014 10:32:35.012"
$ date -d "$DATE" +'%s.%3N'
1411396355.012

おすすめ記事