2016-09-22 10 views
-2

例:tt = "Thu 09/22/2016 11:03:55 AM"のような真実のタイルがあります。このタイムスタンプにbashのタイムスタンプを追加する必要があります 現在のステータス:Thu 09/2016分の22 11時03分55秒Linux:既存のタイムスタンプbashに数秒を追加するにはどうしたらいいですか?

は、ステータスを要求:木2016年9月22日午前11時04分02秒+ VAR は、この場合にはvarが7秒、あなたのコメントの

おかげだろう。

+1

dateコマンドを使用します。 – 123

+0

リプレイに感謝、日付は私が知っているように現在の日付を返します。 –

答えて

3

GNU dateコマンドを使用すると、日付文字列をエポック秒間に解析し、時間差を追加してからdateを再度使用して、エポック秒を人間が判読できる形式に戻すことができます。

#!/bin/bash 

OLD_TT="Thu 09/22/2016 11:03:55 AM" 
OFFSET=7 

EPOCH=$(date --date="$OLD_TT" "+%s") 
NEW_EPOCH=$(($EPOCH + $OFFSET)) 

NEW_TT=$(date --date=\@$NEW_EPOCH "+%a %m/%d/%Y %I:%M:%S %p") 

echo "Old Date : $TT" 
echo "New Date : $NEW_TT" 

出力

Old Date : Thu 09/22/2016 11:03:55 AM 
New Date : Thu 09/22/2016 11:04:02 AM 
+0

'bash' 4.2以降を使用している場合は、' printf -v NEW_TT 'を使って外部プロセスを避けることができます。%(%a%m /%d /%Y%I:%M:%S%p)T '' $ NEW_EPOCH "'。 – chepner

関連する問題