ホームページ > バックエンド開発 > Golang > Go で特定のタイムゾーン オフセットを使用して time.Time インスタンスを構築する方法は?

Go で特定のタイムゾーン オフセットを使用して time.Time インスタンスを構築する方法は?

Mary-Kate Olsen
リリース: 2024-12-03 18:28:11
オリジナル
695 人が閲覧しました

How to Construct a time.Time Instance with a Specific Timezone Offset in Go?

タイムゾーン オフセットを使用した時間の構築

時間管理の領域では、高度なアプリケーションではタイム ゾーンを正確に処理することが重要です。これには、特定のタイムゾーン オフセットを組み込んだ 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート