Time.Parse() とタイムゾーンに関する考慮事項
Go では、日時文字列を解析するときに time.Parse() は本質的にタイムゾーンを調整しません。 。この特殊性により、さまざまなタイムゾーンで時刻を操作するときに予期しない結果が生じる可能性があります。
次のコードを考えてみましょう:
t, err := time.Parse("2006-01-02 MST", "2018-05-11 IST") t2, err := time.Parse("2006-01-02 MST", "2018-05-11 UTC") fmt.Println(t.Unix()) fmt.Println(t2.Unix())
直感的には、これら 2 つの時刻値には異なる Unix タイムスタンプが期待されるでしょう。 IST と UTC 間の時差。ただし、コードの出力は両方の時間値で同一です。これは、time.Parse() が「IST」のような未知のタイムゾーン略語に遭遇すると、実際のタイムゾーン情報を使用する代わりにゼロ オフセットを想定するためです。
特定のタイムゾーンで時刻解析を正しく処理するには、いくつかの方法があります。使用する:
これらの手法を採用することで、さまざまなタイムゾーンで正確な時刻解析と操作を保証し、予期しない変換を回避できます。問題があります。
以上がGo の `time.Parse()` はタイム ゾーンをどのように処理しますか? 正確な時刻解析のためのベスト プラクティスは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。