ホームページ >バックエンド開発 >Golang >Go の time.Now().UnixNano() をミリ秒に変換するにはどうすればよいですか?

Go の time.Now().UnixNano() をミリ秒に変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-14 15:03:20961ブラウズ

How to Convert Go's time.Now().UnixNano() to Milliseconds?

Go の time.Now().UnixNano() をミリ秒に変換する

Go プログラミング言語には、time.Now() など、時間を処理するための便利な関数がいくつか用意されています。 UnixNano() は、ナノ秒の精度で現在のタイムスタンプを返します。ただし、ミリ秒の精度のみが必要な状況に遭遇する可能性があります。

Go v1.17 以降のソリューション

Go バージョン 1.17 以降の場合、time パッケージはこれを簡素化する 2 つの新しい関数を提供します。 task:

  • time.Now().UnixMicro(): マイクロ秒の精度でタイムスタンプを返します(小数点以下 6 桁).
  • time.Now().UnixMilli(): ミリ秒の精度でタイムスタンプを返します (小数点以下 3 桁)。

Toミリ秒のタイムスタンプを取得するには、単に UnixMilli() を使用します。メソッド:

timeMs := time.Now().UnixMilli()

Go v1.16 以前のソリューション

Go バージョン 1.16 以前の場合、目的の変換を手動で実現できます。ミリ秒は 1,000,000 ナノ秒に相当するため、ナノ秒のタイムスタンプを 1,000,000 で割ることができます。

timeMs := time.Now().UnixNano() / 1e6

これにより、小数点以下 3 桁のミリ秒のタイムスタンプが得られます。

これらのアプローチの使用法を示すために、実行できる例は次のとおりです。

package main

import (
    "fmt"
    "time"
)

func main() {
    nanoTime := time.Now().UnixNano()
    microTime := time.Now().UnixMicro()
    milliTime := time.Now().UnixMilli()

    fmt.Println("Nano time:", nanoTime)
    fmt.Println("Micro time:", microTime)
    fmt.Println("Milli time:", milliTime)
}

このコードを実行すると、それぞれナノ秒、マイクロ秒、ミリ秒の精度でタイムスタンプが出力されます。

以上がGo の time.Now().UnixNano() をミリ秒に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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