プログラミングではタイムスタンプの操作が不可欠です。 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 サイトの他の関連記事を参照してください。