時刻ではまった

時刻ではまった。。。。 文字列をtime型にしてからunixtimeに入れようとしたら、

timeStr := "2022-06-07 09:00:00"
layout := "2006-01-02 15:04:05"
timeData, _ = time.Parse(layout, timeStr)
fmt.Println(timeData.Unix()) # => 1654592400

タイムゾーンが、日本に設定してないので、UTCになっているみたい。 time.Parseを使用せずに、locationを設定できるtime.ParseInLocationを使用するとうまく行く。

timeStr := "2022-06-07 09:00:00"
layout := "2006-01-02 15:04:05"

tz, err := time.LoadLocation("Asia/Tokyo")
if err != nil {
    fmt.Println(err)
    panic(err)
}

timeData, err := time.ParseInLocation(layout, str, tz)
if err != nil {
    fmt.Println(err)
    panic(err)
}
fmt.Println(timeData.Unix()) # => 1654562457

適当に作った関数のおかげで悩んでもうた。。。。。(・∀・)