茶漬けの技術メモ

Golang, Rubyで趣味開発します。テックニュース書いたり。ガジェット触ったり。

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