1. ホーム
  2. time

[解決済み] Go time.Now().UnixNano() はミリ秒に変換するのですか?

2022-10-21 13:43:19

質問

Go の Unix 時間をミリ秒単位で取得するにはどうすればよいですか?

次のような関数があります。

func makeTimestamp() int64 {
    return time.Now().UnixNano() % 1e6 / 1e3
}

精度が低く、ミリ秒だけ欲しい。

どのように解決するのですか?

2021年の答えです。

go v1.17 の時点では time パッケージが追加されました。 UnixMicro()UnixMilli() になるので、正解は time.Now().UnixMilli()

元の答えです。

分けるだけです。

func makeTimestamp() int64 {
    return time.Now().UnixNano() / int64(time.Millisecond)
}

以下は、コンパイルして実行し、出力を見ることができる例です。

package main

import (
    "time"
    "fmt"
)

func main() {
    a := makeTimestamp()

    fmt.Printf("%d \n", a)
}

func makeTimestamp() int64 {
    return time.Now().UnixNano() / int64(time.Millisecond)
}