🗂
【Go】日時と Unix 時刻の相互変換
package main
import (
"fmt"
"time"
)
func main() {
// 現在日時を取得
dt := time.Now()
fmt.Println(dt)
// => 2021-01-22 08:28:55.300846 +0900 JST m=+0.000052154
// Unix 時刻を取得
unix := dt.Unix()
fmt.Println(unix)
// => 1611271735
// ナノ秒単位で Unix 時刻を取得
nunix := dt.UnixNano()
fmt.Println(nunix)
// => 1611271735300846000
// Unix 時刻を日時に変換
dtFromUnix := time.Unix(unix, 0)
fmt.Println(dtFromUnix)
// => 2021-01-22 08:28:55 +0900 JST
// ナノ秒単位の Unix 時刻を日時に変換
dtFromUnixNano := time.Unix(nunix/1000000000, nunix%1000000000)
fmt.Println(dtFromUnixNano)
// => 2021-01-22 08:28:55.300846 +0900 JST
}
参考
Discussion