回答
這有點棘手。日期可以做一般的操作,例如,你可以這樣做:
date --date '-10 min'
指定小時,分鐘,秒(使用UTC,否則它似乎假定PM):
date --date '11:45:30 UTC -10 min'
要拆分您的日期字符串時,只有我能想到的方式擴展串:
a=114530
date --date "${a:0:2}:${a:2:2}:${a:4:2} UTC -10 min"
如果你只想找回HHMMSS:
date +%H%M%S --date "${a:0:2}:${a:2:2}:${a:4:2} UTC -10 min"
爲什麼不只是使用紀元時間,然後把600關掉呢?
$ echo "`date +%s` - 600"| bc; date
1284050588
Thu Sep 9 11:53:08 CDT 2010
$ date -d '1970-01-01 UTC 1284050588 seconds' +"%Y-%m-%d %T %z"
2010-09-09 11:43:08 -0500
感謝您的回覆。事情是我不需要根據現在的時間來做。這是一個隨意的時間將作爲五位或六位數字傳遞到腳本中。 – 2010-09-09 17:49:43
通常這是一個好主意,去掉你自己的造型/功能,併發布時使用傳統的提示像「$」。 (在回答這些問題之前,我設置了'PS1 ='\ $'',所以我仍然可以複製粘貼。) – 2010-09-16 21:33:59
既然你有一個5 或 6位數,你必須墊它做字符串操作前:
$ t=90100
$ while [ ${#t} -lt 6 ]; do t=0$t; done
$ echo $t
090100
$ date +%H%M%S --utc -d"today ${t:0:2}:${t:2:2}:${t:4:2} UTC - 10 minutes"
085100
注意兩個--utc和UTC需要確保系統的時區不影響結果。
對於bash中的數學(即$((
和((
),前導零將導致該數字被解釋爲八進制。但是,無論如何,您的數據更像字符串(使用特殊格式)。我在上面使用了一個while循環,因爲它聽起來像是將它當作一個數字處理,因此可能在上午12:01得到100。
我的版本的bash不支持上面使用的-d或--date。但是,假設一個正確的0填充輸入,這是行不通的
$ input_time=130503 # meaning "1:05:03 PM"
# next line calculates epoch seconds for today's date at stated time
$ epoch_seconds=$(date -jf '%H%M%S' $input_time '+%s')
# the 600 matches the OP's "subtract 10 minutes" spec. Note: Still relative to "today"
$ calculated_seconds=$((epoch_seconds - 600)) # bc would work here but $((...)) is builtin
# +%H%M%S formats the result same as input, but you can do what you like here
$ echo $(date -r $calculated_seconds '+%H%M%S')
# output is 125503: Note that the hour rolled back as expected.
- 1. 如何從給定時間減去分鐘數?
- 2. 從時間值減去分鐘
- 3. PHP - 時間減去時間到分鐘
- 4. Excel - 從不到一分鐘的時間內減去一分鐘時間
- 5. 從給定時間減去一秒
- 6. Bash數據 - 如何減去30分鐘
- 7. 從NSDate減去分鐘
- 8. 從日期減去分鐘
- 9. 減去小時和分鐘
- 10. 在字符串中比較時間並從iPhone中減去10分鐘?
- 11. 從計算時間減去分鐘或小時
- 12. 使用JavaScript從UTC時間戳減去分鐘和小時數
- 13. 減去30分鐘
- 14. 如何分組時間小時減少10分鐘
- 15. 從rails日期時間對象中減去N分鐘
- 16. PHP從unix時間戳中減去分鐘數
- 17. 從時間選擇器值減去分鐘數?
- 18. 減去分鐘從使用角度的時間2/4
- 19. 將時間分配給r中的10分鐘間隔組
- 20. Mysql從日期值減去5分鐘
- 21. 用Perl減去分鐘
- 22. MomentJS:問題減去分鐘
- 23. 如何減去分鐘
- 24. 的strtotime減去小時和分鐘
- 25. 如何檢查給定的時間戳是否10分鐘?
- 26. 的Python:轉換減去UNIX時間爲小時/分鐘/秒
- 27. 如何從給定日期/時間減去1小時
- 28. 在兩次特定時間之間每5分鐘減去一次數據
- 29. Javascript時間戳,如果10分鐘過去。
- 30. SQL日期到時間到分鐘減去工作日..... confused
感謝您的答覆。所以澄清......時間不是現在的時間......它是一個作爲參數傳遞給腳本的五位或六位數字......這種方法是否適用於此? – 2010-09-09 17:53:14
@RogerMoore是的,這就是我使用--date的原因。它必須寫成「hh:mm:ss UTC」,因爲否則日期將無法曲解它,但它似乎適用於您的目的。我不確定當你以hh:mm:s的形式傳遞時會發生什麼,你最好在午夜和中午進行測試。 – wds 2010-09-11 11:53:07