3

bashで真夜中を過ぎた現在のミリ秒を取得する方法はありますか? また、完全に bash で行う方法がある場合、そのタイムスタンプの精度はどれくらいですか?

4

2 に答える 2

13

次のコマンドで今日の真夜中を取得できます。

date -d 'today 00:00:00'

UNIX スタンプ:

date -d 'today 00:00:00' "+%s"

したがって、違いを取得したい場合は、次のようにします。

midnight=$(date -d 'today 00:00:00' "+%s")
now=$(date "+%s")
diff_mills=$(( ($now - $midnight) * 1000 ))

秒を%s示すよう*1000に、ミリ秒を取得する必要があります。


(%Nナノ秒):

midnight=$(date -d 'today 00:00:00' "+%s.%N")
now=$(date "+%s.%N")
diff_mills=$(echo "( $now - $midnight ) * 1000" | bc)
于 2013-04-23T12:44:51.250 に答える
3

明示的な日付の違いの代わりに mod を使用することもできます。たとえば、解像度が 1 秒の場合は次のようになります。

millis_since_midnight=$[1000 * ( ( `date "+%s"` - 28800 ) % 86400 )]

28800 は、秒単位の UTC からの PST オフセットであることに注意してください。このクラッジは、OSX のような BSD 時間があり、指定する機能がないシステムで役に立ちました--date 'today 00:00:00'

于 2013-07-23T18:44:48.917 に答える