ホームページ > バックエンド開発 > Golang > Go で Unix タイムスタンプを解析するときに「範囲外」エラーを回避するにはどうすればよいですか?

Go で Unix タイムスタンプを解析するときに「範囲外」エラーを回避するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-31 22:36:10
オリジナル
989 人が閲覧しました

How to Avoid

Go で Unix タイムスタンプを処理する方法

はじめに

プログラミングではタイムスタンプの操作が不可欠です。 Unix タイムスタンプを扱う場合、time.Parse を使用してタイムスタンプを解析すると「範囲外」エラーが発生する場合があります。この記事では、Go でこの問題に対処する解決策を提供します。

問題ステートメント

time.Parse 関数を使用して Unix タイムスタンプを解析しようとすると、レイアウトが正しくないためにエラーが発生する可能性があります。 Go ドキュメントによるとレイアウトは正しいようですが、これは混乱を招く可能性があります。

解決策

time.Parse 関数は、Unix タイムスタンプの解析を目的としたものではありません。 Unix タイムスタンプを解析するには、strconv.ParseInt 関数を使用して文字列タイムスタンプを int64 に変換し、time.Unix を使用して time.Time 値を作成します。

コード例

これはUnix を適切に解析する方法を示す修正されたコード例timestamp:

package main

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

func main() {
    timestamp := "1405544146"
    i, err := strconv.ParseInt(timestamp, 10, 64)
    if err != nil {
        panic(err)
    }
    tm := time.Unix(i, 0)
    fmt.Println(tm)
}
ログイン後にコピー

strconv.ParseInt 関数は、タイムスタンプ文字列、そのベース (この場合は 10)、およびビット サイズ (大きなタイムスタンプを処理するための 64) を受け取ります。タイムスタンプの int64 表現を返します。

time.Unix 関数は、int64 値を受け取り、タイムスタンプを表す time.Time 値を作成します。

結果

コード上記は次を出力します:

2014-07-16 20:55:46 +0000 UTC
ログイン後にコピー

結論

By time.Parse の代わりに strconv.ParseInt と time.Unix を使用すると、Go で Unix タイムスタンプを正常に解析し、「範囲外」エラーを回避できます。このアプローチは、タイムスタンプを操作するための簡単で信頼性の高いソリューションを提供します。

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

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