関連記事
概要
以下、自分用のメモです。たまに使う時があるけど、毎回忘れているのでここにメモメモ。。。
time.Timeの値をいろいろなタイムゾーンの値に変換する方法です。
DST(夏時間)が適用されるタイムゾーンの場合にどうなるのかが気になったので、以下にサンプル残しておきます。
試してみる
package times import ( "time" "github.com/devlights/gomy/output" ) // ChangeTimeZone は、time.Timeをいろいろなタイム・ゾーンの値に変換するサンプルです. func ChangeTimeZone() error { // JSTの現在時刻を取得 locJst, err := time.LoadLocation("Asia/Tokyo") if err != nil { return err } jst := time.Now().In(locJst) output.Stdoutf("[JST]", "%v\n", jst) // UTCへ変換 utc := jst.UTC() output.Stdoutf("[UTC]", "%v\n", utc) // UTCからPDTに変換 // (*) 夏時間(太平洋夏時間, Daylight Saving Time, DST)が適用されている場合でも // このコードで自動的にDSTが考慮される locPdt, err := time.LoadLocation("America/Los_Angeles") if err != nil { return err } pdt := utc.In(locPdt) output.Stdoutf("[PDT]", "%v\n", pdt) return nil }
実行すると以下のようになります。
gitpod /workspace/try-golang (master) $ task task: [run] go run . -onetime ENTER EXAMPLE NAME: time_change_timezone [Name] "time_change_timezone" [JST] 2023-03-31 17:10:49.977490416 +0900 JST [UTC] 2023-03-31 08:10:49.977490416 +0000 UTC [PDT] 2023-03-31 01:10:49.977490416 -0700 PDT [Elapsed] 2.6182ms
参考情報
Goのおすすめ書籍
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。