ホームページ  >  記事  >  バックエンド開発  >  Go での時刻設定方法の分析例

Go での時刻設定方法の分析例

PHPz
PHPzオリジナル
2023-04-12 20:23:351027ブラウズ

Go 言語は、Google が主に推進しているプログラミング言語であり、そのシンプルさ、効率性、安全性が特徴です。 Go 言語では時刻の設定は非常に一般的な操作ですが、この記事では Go での時刻の設定方法を紹介します。

  1. 現在時刻の取得

Go 言語では、時間パッケージの Now 関数を使用して、現在の現地時刻を取得します。コード例は次のとおりです。

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    fmt.Println("当前时间:", now)
}

出力結果は次のとおりです。

当前时间: 2021-07-06 16:34:42.123456789 +0800 CST m=+0.000123456

ご覧のとおり、出力結果には現在の年、月、日、時、分、秒が含まれています。 、ナノ秒などの情報。

  1. 時刻の設定

Go 言語では、時刻パッケージの Time 構造体を使用して時刻を表すことができます。この構造体には、年、月、日、時、分、秒、ナノ秒などの情報が含まれており、タイムゾーン情報も含まれています。

2.1 Time 構造体による時刻の設定

Time 構造体に年、月、日、時、分、秒、ナノ秒の情報を設定することで時刻を設定できます。コード例は次のとおりです。

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2017, time.July, 18, 23, 30, 0, 0, time.Local)
    fmt.Println("设置的时间:", t)
}

出力結果は次のとおりです。

设置的时间: 2017-07-18 23:30:00 +0800 CST

出力結果には、設定された年、月、日、時、分、秒が含まれていることがわかります。その他の情報。

2.2 文字列による時刻の設定

Go 言語では、文字列を解析することで時刻を設定できます。コード例は次のとおりです。

package main

import (
    "fmt"
    "time"
)

func main() {
    t, _ := time.Parse("2006-01-02 15:04:05", "2017-07-18 23:30:00")
    fmt.Println("设置的时间:", t)
}

出力結果は次のとおりです。

设置的时间: 2017-07-18 23:30:00 +0000 UTC

ご覧のとおり、出力結果のタイム ゾーンは UTC タイム ゾーンです。文字列の解析時にタイム ゾーン情報が指定されていないため、デフォルトでは UTC タイム ゾーンが使用されます。タイムゾーン情報を設定することで、使用するタイムゾーンを指定できます。

  1. タイム ゾーンの設定

Go 言語では、time パッケージの LoadLocation 関数を使用してタイム ゾーン情報をロードできます。同時に、Time 構造体のメソッドには、時刻を指定されたタイム ゾーンの時刻に変換できる In 関数が含まれています。

コード例は次のとおりです:

package main

import (
    "fmt"
    "time"
)

func main() {
    loc, _ := time.LoadLocation("Asia/Shanghai")
    t, _ := time.ParseInLocation("2006-01-02 15:04:05", "2017-07-18 23:30:00", loc)
    fmt.Println("设置的时间(上海时区):", t.In(loc))
}

出力結果は次のとおりです:

设置的时间(上海时区): 2017-07-18 23:30:00 +0800 CST

ご覧のとおり、出力結果のタイムゾーンは上海タイムゾーンです。 。

  1. 時間間隔を設定する

Go 言語では、時間パッケージの期間タイプを使用して時間間隔を表すことができます。時間パッケージには、秒、分、時などのさまざまな時間間隔の定数も提供されます。

コード例は次のとおりです:

package main

import (
    "fmt"
    "time"
)

func main() {
    t1 := time.Now()
    
    time.Sleep(2 * time.Second)
    
    t2 := time.Now()
    fmt.Println("时间间隔:", t2.Sub(t1))
}

出力結果は次のとおりです:

时间间隔: 2.000479239s

ご覧のとおり、出力結果には、正確な時間間隔情報が含まれています。ミリ秒レベル。

まとめ

この記事では、Go言語で時刻を設定する方法を紹介します。時間構造。文字列を解析して時間を設定することもできます。同時に、LoadLocation 関数を使用してタイム ゾーン情報を読み込み、In 関数を使用して時刻を指定したタイム ゾーンの時刻に変換できます。 Go 言語には、時間間隔を表す Duration タイプも用意されており、Sub 関数を通じて計算できます。

以上がGo での時刻設定方法の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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