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

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

Susan Sarandon
リリース: 2024-12-03 11:02:10
オリジナル
497 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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