ホームページ > バックエンド開発 > Golang > Go の「time.Parse」が一貫性のない時間変換結果を生成するのはなぜですか?

Go の「time.Parse」が一貫性のない時間変換結果を生成するのはなぜですか?

Patricia Arquette
リリース: 2024-11-21 02:17:18
オリジナル
573 人が閲覧しました

Why Does `time.Parse` in Go Produce Inconsistent Time Conversion Results?

time.Parse を使用した一貫性のない時間変換

Go の time パッケージでは、time.Parse 関数を使用して文字列を time.Time 値に変換します。ただし、特にタイムゾーンを扱う場合には、期待した結果が得られない場合があります。この不一致は、time.Parse.

に指定された形式文字列が正しくないことが原因である可能性があります。目的の変換を確実に行うには、time.Parse 関数で指定された形式に従うことが重要です。この形式は、次のように表される基準時刻に基づいています。

Mon Jan 2 15:04:05 MST 2006
ログイン後にコピー

基準時刻に一致する形式文字列を作成することで、信頼性の高い変換を実現できます。たとえば、次のコードについて考えてみましょう。

package main

import (
    "fmt"
    "log"
    "time"
)

func main() {
    const longForm = "2006-01-02 15:04:05 -0700"
    t, err := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700")
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(t)
}
ログイン後にコピー

この例では、形式文字列 longForm は、日付と時刻のコンポーネントとタイムゾーン オフセットを対応させることによって、基準時間形式と一致します。その結果、time.Parse 関数は文字列を、予想される UTC タイムゾーンの time.Time 値に正常に変換します。

以上がGo の「time.Parse」が一貫性のない時間変換結果を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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