如何將日期變量轉換爲秒?如何將結果/ bin /日期「%Y-%m-%d%H:%M:%S」轉換爲秒?
我定義了一個名爲CDATE變量是這樣的:
CDATE=$(/bin/date +"%Y-%m-%d %H:%M:%S")
CDATE輸出示例:「2012年12月12日12時12分十二秒」
我想將其轉換爲時間秒並將其保存在另一個變量中。
如何將日期變量轉換爲秒?如何將結果/ bin /日期「%Y-%m-%d%H:%M:%S」轉換爲秒?
我定義了一個名爲CDATE變量是這樣的:
CDATE=$(/bin/date +"%Y-%m-%d %H:%M:%S")
CDATE輸出示例:「2012年12月12日12時12分十二秒」
我想將其轉換爲時間秒並將其保存在另一個變量中。
x=($(date +"%Y-%m-%d %H:%M:%S %s"))
CDATE="${x[0]} ${x[1]}"
secs="${x[2]}" # seconds since 1970-01-01 00:00:00 UTC
echo $CDATE
echo $secs
輸出:
2015-04-04 14:13:08 1428149588
它真的幫助我。謝謝 – 2015-04-04 12:18:51
如果不收取CPU時間的話,我會打電話date
兩次,以使其更易於閱讀:
# get the timestamp:
timestamp=$(date +"%s")
# format it:
CDATE=$(date -d @"$timestamp" +"%Y-%m-%d %H:%M:%S")
echo "$CDATE"
echo "$timestamp"
在Linux上:
CDATE=$(date "+%Y-%m-%d %H:%M:%S")
SECONDS=$(date -d "$CDATE" +%s)
在Mac上:
CDATE=$(date "+%Y-%m-%d %H:%M:%S")
SECONDS=$(date -j -f "%Y-%m-%d %H:%M:%S" "$CDATE" +%s)
而且,這兩個變量的內容(在兩種情況下):
$ echo "$CDATE"
2015-04-04 16:24:41
$ echo "$SECONDS"
1428157497
從實際的角度來看,這可能並不重要,但嚴格來說,這兩個變量包含不同的時間點。 – 2015-04-04 14:42:08
不,因爲第二次調用'date'只是將'$ CDATE'中的字符串轉換爲自1970-01-01以來的秒數,所以不會生成新日期(就像在您的解決方案中一樣)。 – weibeld 2015-04-04 15:34:30
呃,是的,我可能已經停止閱讀第二行:-) – 2015-04-04 15:46:10
最簡單的方法:
source <(date +"CDATE='%Y-%m-%d %H:%M:%S' EPOCH='%s'")
例子:
[email protected]:/tmp$ source <(date +"CDATE='%Y-%m-%d %H:%M:%S' EPOCH='%s'")
[email protected]:/tmp$ echo "cdate:$CDATE epoch:$EPOCH"
cdate:2015-04-05 12:39:58 epoch:1428233998
你這是什麼意思_我需要CDATE_?你想覆蓋變量嗎? – 2015-04-04 12:06:46
例如CDATE變量存儲2012:12:12 12:12:12。我想在幾秒鐘內轉換這個結果並存儲在另一個變量中。 – 2015-04-04 12:11:52