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

Go で Unix タイムスタンプを正しく解析するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-29 21:25:10
オリジナル
508 人が閲覧しました

How to Correctly Parse Unix Timestamps in Go?

Go での Unix タイムスタンプの解析

time.Parse 関数を使用して Unix タイムスタンプを time.Time オブジェクトに解析しようとすると、開発者は「範囲外」エラーが発生する可能性があります。このエラーは、特に提供されたレイアウトが Go ドキュメントによれば正しいように見える場合に混乱を招く可能性があります。

このエラーの原因を理解するには、time.Parse が Unix タイムスタンプを処理するように設計されていないことに注意することが重要です。代わりに、特定の形式で時刻値を表す文字列の解析に特化しています。

正しいアプローチ:

Unix タイムスタンプを解析するには、strconv.ParseInt 関数を使用することをお勧めします。タイムスタンプ文字列を整数 (int64) 表現に変換します。この整数を time.Unix 関数で使用して、指定されたタイムスタンプを表す time.Time オブジェクトを作成できます。

package main

import (
    "fmt"
    "time"
    "strconv"
)

func main() {
    unixTimestamp, err := strconv.ParseInt("1405544146", 10, 64)
    if err != nil {
        panic(err)
    }

    timestamp := time.Unix(unixTimestamp, 0)
    fmt.Println(timestamp)
}
ログイン後にコピー

このコードは、Unix タイムスタンプ文字列を正しく解析し、対応する time.Time オブジェクトを作成します。 、さらなる操作や保存に使用できます。

追加注:

32 ビット システムでの潜在的な整数オーバーフローを回避するには、Unix タイムスタンプの解析に strconv.Atoi の代わりに strconv.ParseInt を使用することをお勧めします。 strconv.ParseInt 関数は、より広範囲の整数値をサポートし、システム間の互換性を確保します。

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

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