デフォルトのtime.Duration文字列メソッドでは、分単位で0s
を、時には0m0s
を加算して長さをフォーマットします。代わりにを生成する機能を利用できますか?2h0m0s
の代わりに5m0s
と2h
...または自分で実装する必要がありますか?golang時間の長さを2h0m0sの代わりに2h0m0s
1
A
答えて
3
はないが、それは1を作成するのはとても簡単です:
func shortDur(d time.Duration) string {
s := d.String()
if strings.HasSuffix(s, "m0s") {
s = s[:len(s)-2]
}
if strings.HasSuffix(s, "h0m") {
s = s[:len(s)-2]
}
return s
}
テストそれ:
h, m, s := 5*time.Hour, 4*time.Minute, 3*time.Second
ds := []time.Duration{
h + m + s, h + m, h + s, m + s, h, m, s,
}
for _, d := range ds {
fmt.Printf("%-8v %v\n", d, shortDur(d))
}
出力(Go Playground)上でそれを試してみてください。
5h4m3s 5h4m3s
5h4m0s 5h4m
5h0m3s 5h0m3s
4m3s 4m3s
5h0m0s 5h
4m0s 4m
3s 3s
1
次のように期間を丸めることができます:
func RountTime(roundTo string, value time.Time) string {
since := time.Since(value)
if roundTo == "h" {
since -= since % time.Hour
}
if roundTo == "m" {
since -= since % time.Minute
}
if roundTo == "s" {
since -= since % time.Second
}
return since.String()
}
関連する問題
- 1. 長時間実行中のジョブのPHP Cronジョブの代わり
- 2. PHPのopenssl_random_pseudo_bytes Golangの代わりに?
- 3. spring.net長いロード時間とそれに代わるもの
- 4. ユーザーの時間の代わりにサーバの時刻を読む
- 5. Django:現地時間の代わりにgmt時間をデータベーステーブルに格納
- 6. 直線の代わりに、長方形
- 7. OBJCの数値を時間の値に変換しますか? (時間のパーセントの代わりに時間)
- 8. 時間の代わりに遠隔ドメインの四次緩和?
- 9. 延長または代わりに
- 10. ハイチャートラインチャートの時間の長さ
- 11. 単一のタイムスタンプの代わりに時間間隔のVisjs棒グラフ
- 12. 最大時間の代わりに最近時刻を取得する
- 13. ios scheduledTimerWithTimeInterval時間の長さ
- 14. 長い時間を残りの時間に変換する
- 15. のXcodeの時間プロファイラは、アドレスの代わりに、一般的にはシンボル
- 16. サーバー時刻の代わりにレポートにローカル時刻を表示
- 17. Datepickerは時間の代わりに日付のみを更新する
- 18. アレイは内容の代わりに長さのみを出力します
- 19. 入力タイプの時間は、24の代わりに12時間形式を表示します。
- 20. 時間の長さをPythonのTimedeltaで
- 21. 長いリストの代わりにjQueryを使用< SELECT >ボックス?
- 22. pythonに2.7の代わりに2.7の代わりにインストールされたモジュール
- 23. keytoolは32文字長の鍵ハッシュの代わりに、28
- 24. 時間を伴うGolangテストプログラム
- 25. "a.m."を使用するC#時間形式と "p.m." AM/PMの代わりに?
- 26. R:ggplot:プロットは時間経過の代わりに垂直線を示します
- 27. 時間の間に最長の時間が見つかります
- 28. 私は日付と時間の代わりに時間だけを保存したいcoredata objective-c
- 29. Unixの時間を隠す方法.Golangの時間?
- 30. MySQLの長時間のクエリ時間