Go언어 (Golang) 에서 UTC 와 지역시간 출력하기

Go 언어에서 time.Now() 등으로 만드는 시간은 보통 UTC 값이어서 출력시 한국 시간으로 변환할 필요가 있다. 이를 위해서는 시간값(Time 형식)에 지역 정보(loc)를 지정해 줘야 한다. 기본값은 nil 이므로 UTC 를 따라가게 된다. time.LoadLocation() 을 활용해 지역 정보를 얻어 지정해주면 출력시 지역 시간 정보를 출력한다.

package main

import (
	"fmt"
	"time"
)

func main() {
	loc, err := time.LoadLocation("Asia/Seoul")
	if err != nil {
		panic(err)
	}
	now := time.Now() // Go Playground 에서는 항상 시각은 2009-11-10 23:00:00 +0000 UTC 에서 시작한다.
	t := now.In(loc)
	fmt.Println("now=", now)
	fmt.Println("kst=", t)
}
now= 2009-11-10 23:00:00 +0000 UTC m=+0.000000001
kst= 2009-11-11 08:00:00 +0900 KST

결과를 보면 표준시에 +9시간을 추가한 서울시 시간을 확인할 수 있습니다.

The Go Playground 에서 보기 : https://play.golang.org/p/r3PvVzYjJ9U