ホームページ >バックエンド開発 >Golang >Go の `time.Parse` 関数でタイムスタンプを正しく解析するにはどうすればよいですか?

Go の `time.Parse` 関数でタイムスタンプを正しく解析するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-11 07:44:13281ブラウズ

How to Correctly Parse a Timestamp in Go's `time.Parse` Function?

Go での日付解析

「2011-01-19 22:15」形式のタイムスタンプを解析しようとしています。 tar で一般的に使用されるため、開発者は time.Parse 関数の使用で問題が発生する可能性があります。この記事では、この問題の解決策を提供することを目的としています。

次のコード スニペットは、time.Parse を使用してタイムスタンプを解析しようとして失敗した例を示しています。

package main

import (
    "fmt"
    "time"
)

func main() {
    var time, error = time.Parse("2011-01-19 22:15", "2011-01-19 22:15")
    if error != nil {
        fmt.Println(error.String())
        return
    }
    fmt.Println(time)
}

このコードは、エラー メッセージが表示されて失敗します。 "'解析時間 "2011-01-19 22:15": 残りの月range'".

解決策は、time.Parse の構文とセマンティクスを理解することにあります。 Go 時間パッケージのドキュメントで指定されているように、time.Parse で使用されるデフォルトのレイアウトは、標準の Unix 時間形式に基づいています:

"Mon Jan 2 15:04:05 MST 2006 (MST は GMT-0700) 「

どこ:

  • 月、1 月 2 日15、04、05 は、月、日、日、時、分、秒に対応する値です
  • MST はタイムゾーン オフセットです
  • 2006 年は年です

カスタム レイアウトを定義するには、開発者は標準時間が希望の形式でどのように表示されるかを決定する必要があります。たとえば、「2011-01-19 22:15」タイムスタンプを解析するには、次のスニペットを使用できます:

package main

import (
    "fmt"
    "time"
)

func main() {
    t, err := time.Parse("2006-01-02 15:04", "2011-01-19 22:15")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(time.SecondsToUTC(t.Seconds()))
}

ここでは、カスタム レイアウト文字列「2006-01-02 15」を指定しています。 :04」を入力タイムスタンプと一致させます。結果は Unix 時間形式で出力されます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。