Bash
在給定時間戳之前和之後獲取 60 分鐘 - Shell/ksh
我正在尋找從給定時間開始的時間範圍。開始時間應在給定時間前 60 分鐘,結束時間應在給定時間後 60 分鐘。
目的:給定的時間就像一個“影響時間”,我希望在影響時間附近獲得一個合適的時間範圍,以便能夠抓取日誌。
範例:給定時間是 2018-05-16 20:30:00 這是格式 ‘%Y-%m-%d %H:%M:%S’
請幫我獲取:開始時間是2018-05-16 19:30:00 結束時間是2018-05-16 21:30:00
這將在始終處於 PDT/PST 的伺服器上執行,並且日期時間的格式為 ‘%Y-%m-%d %H:%M:%S’
假設時區設置正確,並且 GNU 日期,您可以獲得 Unix 時間戳,減去、加上 60 分鐘並將其轉換回所需的格式:
$ ts=$(date -d "2018-05-16 21:30:00" +%s) # For BSD date: date -jf "%F %T" "2018-05-16 21:30:00" +%s $ echo "$(date -d@$((ts - 3600)) +"%F %T")" 2018-05-16 20:30:00 $ echo "$(date -d@$((ts + 3600)) +"%F %T")" 2018-05-16 22:30:00
…我認為這並不能正確解釋閏秒和每個程序員都應該知道的其他各種問題。