【Go】日時と Unix 時刻の相互変換

1 min read読了の目安(約800字
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
}

参考