我有一個格式爲'YYYYMMDDHHMMSS'
的日期,我需要將其轉換爲Unix時間戳。Bash將日期轉換爲時間戳
我試圖date -d '20140826225834'
但我得到了'invalid date'
錯誤。我假設我將不得不將我有的(20140826225834
)轉換爲接受日期,然後將其轉換爲時間戳? 編輯:我有sed這個日期從2014-08-21_23.03.07
- 也許這將是更容易轉換此日期類型
我有一個格式爲'YYYYMMDDHHMMSS'
的日期,我需要將其轉換爲Unix時間戳。Bash將日期轉換爲時間戳
我試圖date -d '20140826225834'
但我得到了'invalid date'
錯誤。我假設我將不得不將我有的(20140826225834
)轉換爲接受日期,然後將其轉換爲時間戳? 編輯:我有sed這個日期從2014-08-21_23.03.07
- 也許這將是更容易轉換此日期類型
您應該更改日期的格式,以便date
可以處理它。我用sed
將它更改爲YYYY/MM/DD HH:MM:SS
格式。
$ date -d"$(sed -r 's#(.{4})(.{2})(.{2})(.{2})(.{2})#\1/\2/\3 \4:\5:#' <<< "20140826225834")" "+%s"
1409086714
通過片:
$ sed -r 's#(.{4})(.{2})(.{2})(.{2})(.{2})#\1/\2/\3 \4:\5:#' <<< "20140826225834"
2014/08/26 22:58:34
$ date -d"2014/08/26 22:58:34"
Tue Aug 26 22:58:34 CEST 2014
$ date -d"2014/08/26 22:58:34" "+%s"
1409086714
你可以使用PHP,因爲PHP的strtotime()
可以解析您的輸入格式:
#!/bin/bash
input="20140826225834"
output=$(php -r 'echo strtotime("'"$input"'");')
echo "$output" # 1409086714
[轉換日期時間字符串在bash UNIX時間戳可能重複命令](http://stackoverflow.com/questions/10990949/convert-date-time-string-to-unix-timestamp-in-bash-command) – 2015-07-25 08:59:22