Unix タイムスタンプを解析する方法
Go で Unix タイムスタンプを解析するのは簡単な作業のように思えるかもしれませんが、予期しないエラーが発生する可能性があります。 time.Parse を使用してタイムスタンプを解析しようとすると、レイアウトが正しいように見えても、範囲外エラーが発生することがあります。
この理由は、time.Parse が Unix タイムスタンプを処理しないためです。代わりに、strconv.ParseInt 関数を使用してタイムスタンプ文字列を int64 に変換し、次に time.Unix 関数を使用して time.Time オブジェクトを作成する必要があります。
次に例を示します:
package main import ( "fmt" "time" "strconv" ) func main() { i, err := strconv.ParseInt("1405544146", 10, 64) if err != nil { panic(err) } tm := time.Unix(i, 0) fmt.Println(tm) }
このコードは正しいものを出力しますタイムスタンプ:
2014-07-16 20:55:46 +0000 UTC
重要な注意:
元の例では、strconv.ParseInt の代わりに strconv.Atoi が使用されました。ただし、strconv.Atoi は 32 ビット システムでは整数オーバーフローを引き起こす可能性があります。したがって、すべてのケースを安全に処理するには、strconv.ParseInt を使用することをお勧めします。
以上がGo で Unix タイムスタンプを安全に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。