タイムゾーン オフセットを使用した時間の構築
時間管理の領域では、高度なアプリケーションではタイム ゾーンを正確に処理することが重要です。これには、特定のタイムゾーン オフセットを組み込んだ time.Time インスタンスの構築が含まれます。
Apache ログ エントリの例を見てみましょう:
[07/Mar/2004:16:47:46 -0800]
個々のコンポーネント (年、月、日) が正常に解析された後、時、分、秒、およびタイムゾーン)、次のステップは、「-0800」タイムゾーンを組み込んだ time.Time インスタンスを構築することです。 offset.
time.FixedZone() の使用
この目的のために、time.FixedZone() を利用できます。この関数を使用すると、固定オフセットを使用して time.Location を構築できます。以下に例を示します。
loc := time.FixedZone("myzone", -8*3600) nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, loc) fmt.Println(nativeDate)
出力:
2019-02-06 00:00:00 -0800 myzone
time.Parse() を使用する
タイムゾーン オフセットは文字列として取得できるため、 time.Parse() を使用してそれを解釈できます。参照ゾーン オフセットのみを含むレイアウト文字列を使用します:
t, err := time.Parse("-0700", "-0800") fmt.Println(t, err)
出力:
0000-01-01 00:00:00 -0800 -0800 <nil>
出力から明らかなように、結果の time.Time は-0800 時間のゾーン オフセット。
完了例
上記の手法を組み込むと、元の例は次のように書き換えることができます。
t, err := time.Parse("-0700", "-0800") if err != nil { panic(err) } nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, t.Location()) fmt.Println(nativeDate)
出力:
2019-02-06 00:00:00 -0800 -0800
以上がGo で特定のタイムゾーン オフセットを使用して time.Time インスタンスを構築する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。