ホームページ > バックエンド開発 > Golang > Go でタイムゾーンを正しく解析して処理するにはどうすればよいですか?

Go でタイムゾーンを正しく解析して処理するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-01 14:38:12
オリジナル
607 人が閲覧しました

How to Correctly Parse and Handle Time Zones in Go?

Go でタイムゾーンを正しく使用する

タイムゾーン コードを解析しようとする場合、Go でのタイムゾーンの処理方法の微妙な違いを理解することが重要です。 .

あなたが提供したコードは、時間がかかる parseAndPrint という関数を設定します。インスタンスとタイムゾーンの略語を引数として指定します。ただし、指定したタイムゾーンに関係なく、関数の出力は常に「05:00:00 0000 UTC」です。

この問題は、現在の場所の時刻を解析しているために発生します。この時刻は、現在とは異なる場合があります。希望のタイムゾーン。 Go の time.Parse 関数は、time.Location.

を使用して明示的に指定されていない限り、現在の場所で解析していると想定します。特定のタイムゾーンの時間を正しく解析するには、次の手順を使用する必要があります:

  1. time.LoadLocation(timezoneAbbreviation) を使用して、目的のタイムゾーンの位置を読み込みます。
  2. time.ParseInLocation(localLocation, timeString, location) を使用した時刻。localLocation は現在の場所、timeString は時間文字列 (例: "05:00:00")、location は手順 1 で取得したタイムゾーンの場所です。

これらの手順をcode:

func parseAndPrintWithLocation(now time.Time, timezone string) {
    location, err := time.LoadLocation(timezone)
    if err != nil {
        fmt.Println(err)
        return
    }
    test, err := time.ParseInLocation("15:04:05 MST", fmt.Sprintf("05:00:00", timezone), location)
    if err != nil {
        fmt.Println(err)
        return
    }
    test = time.Date(
        now.Year(),
        now.Month(),
        now.Day(),
        test.Hour(),
        test.Minute(),
        test.Second(),
        test.Nanosecond(),
        test.Location(),
    )

    fmt.Println(test)
}
ログイン後にコピー

タイムゾーンの位置に対して正しいアプローチを利用することで、解析された時刻に目的のタイムゾーンが確実に反映され、コードでさまざまな地域の時刻を正確に処理できるようになります。

以上がGo でタイムゾーンを正しく解析して処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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