GO でタイムゾーンを指定してstringからtimeを取得する
サンプル
package main import ( "fmt" "time" ) var layout = "2006-01-02 15:04:05" func main() { now := time.Now() fmt.Println(now) str := timeToString(now) fmt.Println(str) t := stringToTime(str) fmt.Println(t) jst := stringToTimeInJST(str) // ⇦これ fmt.Println(jst) } func timeToString(t time.Time) string { str := t.Format(layout) return str } func stringToTime(str string) time.Time { t, _ := time.Parse(layout, str) return t } func stringToTimeInJST(str string) time.Time { // ⇦これこれこれ loc, _ := time.LoadLocation("Asia/Tokyo") t, _ := time.ParseInLocation(layout, str, loc) return t }
time.Parse を使ってしまうと、UTCになってしまうため
タイムゾーンを指定する場合は time.ParseInLocation を使う必要があります
timeからstring はこちら
o-tyazuke.hatenablog.com