Go の期間
Musfirah Waseem
2023年6月20日
Go 期間の変換 は複数の方法で実行できます。 time
ライブラリと time.duration
メソッドは、時間の計算と表示に頻繁に使用されます。
Duration
は、定義された 2つの時間オブジェクト間の経過時間を int64
ナノ秒
カウントとして参照することに注意してください。
期間インスタンスの変換
ナノ秒 | 1 |
マイクロ秒 | 1000 * ナノ秒 |
ミリ秒 | 1000 * マイクロ秒 |
2番 | 1000 * ミリ秒 |
分 | ≪60*秒≫ |
時間 | ≪60分≫ |
time.duration
メソッドを使用する
package main
import (
"fmt"
"time"
)
func main() {
d, err := time.ParseDuration("1h25m10.9183256645s")
if err != nil {
panic(err)
}
count := []time.Duration{
time.Nanosecond,
time.Microsecond,
time.Millisecond,
time.Second,
2 * time.Second,
time.Minute,
10 * time.Minute,
time.Hour,
}
for _, r := range count {
fmt.Printf("(%6s) = %s\n", r, d.Round(r).String())
}
}
出力:
( 1ns) = 1h25m10.918325664s
( 1µs) = 1h25m10.918326s
( 1ms) = 1h25m10.918s
( 1s) = 1h25m11s
( 2s) = 1h25m10s
( 1m0s) = 1h25m0s
( 10m0s) = 1h30m0s
(1h0m0s) = 1h0m0s
上記のコードにより、それぞれの期間をすべて浮動小数点整数として計算できます。
time
ライブラリを使用して経過時間を計算する
package main
import (
"fmt"
"time"
)
func main() {
var t time.Duration = 100000000000000
fmt.Println(t.Hours())
fmt.Println(t.Minutes())
fmt.Println(t.Seconds())
now := time.Now()
time.Sleep(100000)
diff := now.Sub(time.Now())
fmt.Println("Elapsed time in seconds: ", diff.Seconds())
}
出力:
27.77777777777778
1666.6666666666667
100000
Elapsed time in seconds: -0.0001
経過時間は、プロセッサが期間を計算するのにかかった時間を示します。
Goで期間を数値に変換する
package main
import (
"fmt"
"time"
)
func main() {
timeInput := 3600
data := time.Duration(timeInput) * time.Millisecond
fmt.Println("The time in Nanoseconds:", int64(data/time.Nanosecond))
fmt.Println("The time in Microseconds:", int64(data/time.Microsecond))
fmt.Println("The time in Milliseconds:", int64(data/time.Millisecond))
}
出力:
The time in Nanoseconds: 3600000000
The time in Microseconds: 3600000
The time in Milliseconds: 3600
上記のコードにより、数値を時間インスタンスに変換でき、次に time.Duration
が時間変換を実行します。 最終的に、時間インスタンスは数値に変換されます。
著者: Musfirah Waseem
Musfirah is a student of computer science from the best university in Pakistan. She has a knack for programming and everything related. She is a tech geek who loves to help people as much as possible.
LinkedIn