Go の期間

Musfirah Waseem 2023年6月20日
  1. 期間インスタンスの変換
  2. time.duration メソッドを使用する
  3. time ライブラリを使用して経過時間を計算する
  4. Goで期間を数値に変換する
Go の期間

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 Waseem avatar Musfirah Waseem avatar

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

関連記事 - Go Time