ホームページ  >  記事  >  バックエンド開発  >  golangはタイムスタンプを変換します

golangはタイムスタンプを変換します

王林
王林オリジナル
2023-05-15 14:10:091374ブラウズ

タイムスタンプはコンピュータが時間を処理する方法で、通常はある時点から別の時点までの秒数を表す整数を使用します (通常は 1970 年 1 月 1 日 00:00:00 UTC)。 Go 言語ではタイムスタンプの変換が非常に簡単なので、この記事では関連する方法とテクニックをいくつか紹介します。

  1. time.Unix() 関数を使用してタイムスタンプを時刻値に変換する

time.Unix() 関数は 2 つのパラメータを受け入れます。1 つは Unix タイムスタンプですもう 1 つはナノ秒のオフセットです。対応する Time 型の値を返します。例:

package main

import (
    "fmt"
    "time"
)

func main() {
    unixTimestamp := int64(1609459200)
    t := time.Unix(unixTimestamp, 0)
    fmt.Println(t)
}

上記のコードは、タイムスタンプ 1609459200 を対応する時間値 2021-01-01 00:00:00 0000 UTC に変換します。 2 番目のパラメータはナノ秒のオフセットです。必要ない場合は 0 を渡すことができます。

  1. time.UnixNano() 関数を使用してタイムスタンプをナノ秒に変換する

time.UnixNano() 関数は Unix タイムスタンプを受け取り、対応するナノ秒数値を返します。例:

package main

import (
    "fmt"
    "time"
)

func main() {
    unixTimestamp := int64(1609459200)
    nano := time.UnixNano(unixTimestamp)
    fmt.Println(nano)
}

上記のコードは、タイムスタンプ 1609459200 を対応するナノ秒数 1609459200000000000 に変換します。

  1. time.Since() メソッドを使用して、タイムスタンプを期間 (継続時間) に変換します。

time.Since() メソッドは、時間値を受け取り、現在の値を返します。 time とこの時間値の間の期間。したがって、タイムスタンプを時間値に変換し、time.Since() メソッドを使用して対応する期間を計算できます。例:

package main

import (
    "fmt"
    "time"
)

func main() {
    unixTimestamp := int64(1609459200)
    t := time.Unix(unixTimestamp, 0)
    duration := time.Since(t)
    fmt.Println(duration)
}

上記のコードは、タイムスタンプ 1609459200 を対応する時間値に変換し、現在時刻 73.141589ms を使用してその継続時間を計算します。

  1. time.Now().Unix() メソッドを使用して、現在時刻のタイムスタンプを取得します。

time.Now().Unix() メソッドを使用できます。 ) 現在のタイムスタンプを取得するメソッド。時刻のタイムスタンプ。int64 型の値を返します。例:

package main

import (
    "fmt"
    "time"
)

func main() {
    unixTimestamp := time.Now().Unix()
    fmt.Println(unixTimestamp)
}

上記のコードは、現在時刻のタイムスタンプを取得して出力します。タイムスタンプ出力が現在時刻の整数値であることがわかります。

  1. time.Parse() メソッドを使用して文字列を時刻値に変換する

time.Parse() メソッドは 2 つのパラメータを受け入れます。1 つは時刻形式です。もう 1 つは、変換する必要がある時刻文字列です。対応する Time 型の値を返します。例:

package main

import (
    "fmt"
    "time"
)

func main() {
    layout := "2006-01-02 15:04:05"
    str := "2021-01-01 00:00:00"
    t, err := time.Parse(layout, str)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(t)
}

上記のコードは、文字列 "2021-01-01 00:00:00" を対応する時刻値: 2021-01-01 00: 00:00 0000 UTC。このうち、layout パラメータは時間形式の文字列であり、指定された時間シーケンス Mon Jan 2 15:04:05 MST 2006 を使用して時間の各部分を表す必要があります。これは、パケットの送信時間がこのシーケンスを採用しており、その初期時間がまさに Unix タイムスタンプ 0 に対応する時間であるためです。

概要

この記事では、Go 言語でタイムスタンプを時間値、ナノ秒、期間などに変換する方法とテクニックを紹介します。これらのメソッドは、Go 言語で時間を扱う必要がある場合に非常に役立ちます。もちろん、特定のアプリケーション シナリオに応じて、タイムスタンプの変換と処理にこれらの方法を 1 つ以上選択できます。

以上がgolangはタイムスタンプを変換しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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