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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 11:02:10416ブラウズ

How to Correctly Retrieve a Unix Timestamp in Go?

Go での Unix タイムスタンプの取得

Go では、Unix タイムスタンプ (エポックからの秒単位の現在時刻) を取得できます。タイムパッケージを使用します。このタイムスタンプは、ファイルの変更やデータベースのタイムスタンプなど、さまざまな目的でよく使用されます。

元のコード

質問から提供されたコードは、Unix タイムスタンプを取得しようとします。 os.Time 関数の使用:

if t, _, err := os.Time(); err == nil {
    port[5] = int32(t)
}

このスニペットには論理エラーがあります。コードの詳細な内訳は次のとおりです。

  • os.Time(): この関数は、Time タイプ、つまり任意のタイム ゾーン オフセットを持つ実時計のタイムスタンプを返します。
  • _, _, err := os.Time(): 現在のローカル タイム ゾーンのタイムスタンプのみを考慮するため、アンダースコアの付いた 2 つの変数を使用します (_ は空です)
  • port[5] = int32(t): この行は、Time 値を int32 配列要素に直接割り当てようとします。ただし、Time は time.Time 型であり、int32 とは直接互換性がありません。

更新されたコード

Go で Unix タイムスタンプを取得するには、より適切な関数は time.Now().Unix() です。この関数は、Unix エポック (協定世界時 1970 年 1 月 1 日) からの秒数として現在時刻を表す整数を返します。更新されたコードは次のようになります。

import "time"

...

port[5] = time.Now().Unix()

この改訂されたコードは、Unix タイムスタンプを正しく取得し、time.Now().Unix() を使用して変換することで、それを int32 として port[5] 要素に割り当てます。整数を返します。

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

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