時間がミリ秒単位であり、期間に合わせてフォーマットしたいと思います。例えば、次のようにします(このように必ずしも必要ではありません):1d 23h 15m 13s。 これはどのようにしてjqで行うことができますか?jqコンソールツールで時間枠をフォーマットします
1
A
答えて
3
ここでは、計算を直接行うソリューションです。
def roundto(n): (./n|floor)*n ;
def timefmt(ms):
def calcsecs: .s_to_m = (.seconds | roundto(60)) | .secs = .seconds - .s_to_m ;
def calcmins: .minutes = .s_to_m/60 | .m_to_h = (.minutes | roundto(60)) | .mins = .minutes - .m_to_h ;
def calchrs: .hours = .m_to_h/60 | .h_to_d = (.hours | roundto(24)) | .hrs = .hours - .h_to_d ;
def calcdays: .days = .h_to_d/24 ;
def fmtelt(e;u): if e>0 then " \(e)\(u)" else "" end ;
def fmt:
.s = " \(.secs)s"
| .m = fmtelt(.mins; "m")
| .h = fmtelt(.hrs; "h")
| .d = fmtelt(.days; "d")
| "\(.d)\(.h)\(.m)\(.s)"[1:]
;
{seconds: (ms/1000)|floor} | calcsecs | calcmins | calchrs | calcdays | fmt
;
timefmt($ms)
このフィルタは次いで、filter.jq
のみreleventフィールドが示されているより小さな間隔で
$ jq -Mnr --argjson ms 1505752580000 -f filter.jq
出力
17427d 16h 36m 20s
ある場合。例えばここ
$ jq -Mnr --argjson ms 1505750 -f filter.jq
出力
25m 5s
1
ない丸めと、凝縮「Dさh M S」の文字列ミリ秒を変換するための機能の簡潔かつ単純な実装です。ミリ秒の余りを含むようにこれを修正することは自明であろう。
# input: milliseconds
# output: ignore millisecond remainder
def formattime:
def f(u): if .>0 then " \(.)" + u else "" end ;
# emit a stream of the remainders
def s: foreach (1000,60,60,24,1) as $i ([.,0];
.[0] as $n
| ($n/$i | floor) as $m
| [$m, $n - ($m*$i)];
if $i == 1 then .[0] else .[1] end);
[s] as [$ms, $s, $m, $h, $d]
| {s : " \($s)s",
m : ($m|f("m")),
h : ($h|f("h")),
d : ($d|f("d")) }
| "\(.d)\(.h)\(.m)\(.s)"[1:]
;
formattime
例:
$ jq -r -f formattime.jq
1505752580000
17427d 16h 36m 20s
6006
6s
1
0s
関連する問題
- 1. 時間枠内でカウントアップ
- 2. のMySQL:時間枠
- 3. パンダ(パイソン) - 時間枠
- 4. HTML5ビデオを所定の時間枠で繰り返します。
- 5. 時間フォーマットが12時間または24時間のフォーマットであるかどうかを検出する
- 6. SQL - 時間フォーマット
- 7. フォーマット時間Python
- 8. フォーマット時間
- 9. フォーマット時間アルゴリズム
- 10. フォーマット時間、Python
- 11. 1時間の時間枠を設定してからSASでループする
- 12. JQフィルタと出力フォーマット
- 13. Nagiosの時間枠と通知期間
- 14. オラクルは時間枠の外に月を選択します
- 15. 時間枠間でレコードを取得する方法
- 16. jQueryのフォーマット時間
- 17. MySQL STR_TO_DATE時間フォーマット
- 18. python comand 12時13時30分の時間枠をスケジュールする
- 19. Androidアプリケーションで時間をフォーマットする
- 20. iOSで時間デルタをフォーマットするAPI
- 21. moment.jsで時間、分、秒をフォーマットします
- 22. 別の期間内にデータのサブセットの時間枠を返しますか?
- 23. Angularjsでモーメントjsを使用して12時間フォーマットを24時間フォーマットに変換する
- 24. Excelの2つの時間枠の間の時間単位での検索
- 25. Oracle SQL:動的時間枠計算
- 26. データベースアーカイブと時間枠ベースのテーブル/フィールド
- 27. のMySQL:特定の時間枠
- 28. 設定時間枠のSQLローリングサマリー統計
- 29. LibreOffice SUM時間枠の形式HH:MM:SS
- 30. Apache Spark |特定の時間枠集約
あなたはそれを自分で行う必要があります - ちょうどあなたが他の言語と同じように、分岐ロジックを独自の数学の+を書きます。そうしようとしましたか?試行した作業を表示できますか? –
jq170727答えは私がこれまで発明したことができます。 :-) – wjtk