Command-Line
用於轉換/格式化時間的命令行工具
是否有用於轉換/格式化時間的命令行工具?(我的意思是時間,而不是日期!)
這是我所期待的:
$ timeconverter --format '%s' 1h 3600 $ timeconverter --format '%h:%m:%s' 3665s 1:01:05 $ timeconverter --format '%H:%m:%s' 3665s 01:01:05 $ timeconverter --format '%Hh%Mm%Ss' 3966s 1h5m6s $ timeconverter --format '%m' 2d 2880 $ timeconverter --format '%d' 1w 7 $ timeconverter --format '%y' 365d 1 $ timeconverter --format '%s' 1h10m 4200
其中 %m 是分鐘,%d 是天,%y 是年,%h 是小時,%s 是秒,%w 是周,以此類推。
我自己可以為它編寫一個 shell 腳本,但很可能其他人已經這樣做了,我想節省我的時間。
您擁有 GNU 軟體單元
units
(在許多 Linux 發行版中以軟體包的形式提供)。這是一個簡單的執行來找出 2 週內的天數:
$ units "2 week" day * 14 / 0.071428571
手冊頁詳細解釋了輸入、輸出、退出程式碼和其他使用該命令的方法。
不要認為有一個成熟的命令行工具為此做好了準備。主要原因可能是這樣做可能會帶來很多陷阱,因為人類時間不是很……線性的。
範例:您想知道未來 2 年的分鐘數。這個數字取決於 2022 年還是 2023 年是閏年。
如果您真的只想使用“標準”單位(即忽略現實):
我可能不會將其實現為 shell 腳本,而是作為一個非常小的
/usr/bin/env python3 -I -S
腳本,將輸入參數轉換為秒,然後在計算所需的整數除法和模數之後使用將格式字元串傳遞給字元串格式化函式您可能想要輸出的所有潛在欄位。無論如何,讓我重複一遍:有幾個,但不是很多,你可能想要這樣做的充分理由。通常,如果您不知道結果將用於什麼,則轉換時間段會變得很危險;列印“你的鬧鐘將在 600 分鐘後響起”,而實際上它在夏令時調整時鐘後的 9 小時後在上午 8 點響起是個壞主意。