time.Parse の動作
Go の time.Parse 関数を使用して文字列を time.Time 値に変換しようとすると、タイムゾーンが正しく指定されていない場合、予期しない結果が発生する可能性があります。この記事では、タイムゾーンの形式を ISO 8601 に合わせることで、この問題の解決策を検討します。
time.Parse 関数には、入力文字列の形式を定義するレイアウト文字列が必要です。提供されたレイアウト文字列「2013-05-13T18:41:34.848Z」は、Golang で使用される基準時刻、つまり UTC-0700 タイムゾーンの「Mon Jan 2 15:04:05 MST 2006」を正確に表していません。
この問題を解決するには、基準時間に一致するカスタム レイアウト文字列を定義する必要があります。次のレイアウト文字列を使用する必要があります:
const longForm = "2006-01-02 15:04:05 -0700"
このレイアウト文字列は基準時刻の形式と一致します。
この修正されたレイアウト文字列を使用すると、time.Parse 関数は入力文字列を正常に変換できます。 time.Time 値:
t, err := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700") if err != nil { log.Fatal(err) } fmt.Println(t)
これは正しく動作します出力:
2013-05-13 01:41:34.848 +0000 UTC
これは、Go で time.Parse を使用するときにタイムゾーンの書式設定を正しく処理して、正確な時刻変換を保証する方法を示します。レイアウト文字列を基準時刻とタイムゾーンの指定に合わせることで、期待どおりの結果が得られます。
以上がGo の time.Parse 関数を使用するときにタイムゾーンを正しく処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。