ホームページ >バックエンド開発 >Golang >Go で Tar の出力のような非標準のタイムスタンプを解析するにはどうすればよいですか?

Go で Tar の出力のような非標準のタイムスタンプを解析するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-19 13:26:32686ブラウズ

How to Parse Non-Standard Timestamps like Tar's Output in Go?

Go での日付の解析

Go でのタイムスタンプの解析は、特に標準以外の形式を扱う場合には困難になることがあります。このようなシナリオの 1 つは、「2011-01-19 22:15」など、tar によって生成されたタイムスタンプの解析を含みます。

time.Parse 関数を使用してこのタイムスタンプを解析しようとする最初の試みは、「解析時間」というエラー メッセージが表示されて失敗します。 「2011-01-19 22:15」: 月が範囲外です。このエラーは、time.Parse で使用されるデフォルトの時刻形式が tar タイムスタンプとは異なる標準形式を想定していることが原因で発生します。

この問題を解決するには、Go time パッケージのドキュメントでカスタム日付の定義手順を参照してください。フォーマット。ドキュメントによると、標準時刻形式は「Mon Jan 2 15:04:05 MST 2006」の形式です。カスタム形式を作成するには、標準形式の要素を目的の形式の対応する要素にマッピングするだけです。

たとえば、tar タイムスタンプ「2011-01-19 22:15」を解析するには、次のコード:

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()))
}

出力:

Wed Jan 19 22:15:00 UTC 2011

このカスタム形式では、 time.Parse 関数は tar タイムスタンプを正しく解析し、同等の time.Time オブジェクトを UTC 形式で返します。

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

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