Golang は、さまざまな分野で広く使用されている効率的で簡潔なプログラミング言語です。開発では、文字列から時刻への変換、時刻から文字列への変換など、時刻の変換が必要になることがよくありますが、時刻の形式が異なると特定の問題も発生します。そこで、この記事ではGolangにおける時間変換操作を紹介し、その具体的な使い方を例を通して解説します。
1. 文字列を時間に変換する
Golang では、time パッケージの Parse 関数を使用して文字列を時間に変換できます。 Parse関数の具体的な定義は以下の通りです。
func Parse(layout, value string) (Time, error)
このうち、layoutは変換する文字列の時刻形式を表します。 、 value は変換される文字を表します。これら 2 つのパラメーターは、時間パッケージの事前定義された定数を使用できます。特定の定数とその意味は次のとおりです:
時間定数 | 意味 |
---|---|
ANSIC | 「Mon Jan _2 15:04:05 2006」 |
UnixDate | "月 1 月 _2 15:04:05 MST 2006" |
RFC3339 | "2006-01-02T15:04:05Z07:00" |
たとえば、文字列「2022/04/12 15:20:00」を時刻に変換するサンプルコードは次のとおりです。
timeStr := "2022/04/12 15:20:00" layout := "2006/01/02 15:04:05" t, err := time.Parse(layout, timeStr) if err != nil { fmt.Println("转化失败:", err) } else { fmt.Println("转化成功:", t) }
このうち、timeStrは変換する文字列、layout は文字列の時刻形式 (「2006/01/02 15:04:05」は年、月、日、時、分、秒を表します)、t は取得された時刻オブジェクトです変換後、err は変換プロセス中のエラー メッセージです。上記のコードを実行すると、出力結果は次のようになります。
转化成功: 2022-04-12 15:20:00 +0000 UTC
2. 時間を文字列に変換する
#同様に、Golang では、Format 関数を使用して時間を文字列に変換できます。この関数の具体的な定義は次のとおりです。 func (t Time) Format(layout string) string このうち、t は変換対象の時間オブジェクト、layout はフォーマットされた文字列を表します。時間文字列。その使用方法も、上で紹介した Parse 関数と似ています。 例として、時刻を「2022/04/12 15:20:00」という形式の文字列に変換するサンプルコードは以下のとおりです。t := time.Now() layout := "2006/01/02 15:04:05" timeStr := t.Format(layout) fmt.Println("转化后时间字符串:", timeStr)このうち、tは現在の時刻とレイアウトが変換されます。以降の時刻の形式 (「2006/01/02 15:04:05」は年、月、日、時、分、秒を表します)、timeStr は変換された時刻文字列です。上記のコードを実行すると、出力結果は次のようになります:
转化后时间字符串: 2022/04/12 15:20:003. タイム ゾーン変換Golang では、time パッケージの Location 関数を使用して時間のタイム ゾーン表現を取得できます。 。定義は以下の通りです。 func LoadLocation(name string) (*Location, error) このうち、nameはタイムゾーン名(「Asia/Shanghai」など)を表します。 たとえば、現地時間を UTC 時間に変換する場合、time パッケージの UTC 関数を使用できます。サンプルコードは次のとおりです:
t := time.Now() utc := t.UTC() fmt.Println("本地时间:", t) fmt.Println("UTC时间:", utc)このうち、t は現地時間ですutc は変換された UTC 時間です。上記のコードを実行すると、出力結果は次のようになります:
本地时间: 2022-10-07 15:24:56.200122 +0800 CST m=+0.000498761 UTC时间: 2022-10-07 07:24:56.200122 +0000 UTC4. 時間の加算と減算Golang では、Add 関数と Sub 関数を使用して時間の加算と減算を実行できます。具体的な定義は次のとおりです。 func (t Time) Add(d Duration) Time
func (t Time) Sub(u Time) Duration
t := time.Now() d := 10 * time.Minute newTime := t.Add(d) fmt.Println("原时间:", t) fmt.Println("加10分钟后的时间:", newTime)このうち、t は既存の時刻、d は加算する時間間隔 (10 分)分)、newTime は追加後に取得された新しい時刻です。上記のコードを実行すると、出力結果は次のようになります:
原时间: 2022-10-07 15:35:26.924559 +0800 CST m=+0.000213898 加10分钟后的时间: 2022-10-07 15:45:26.924559 +0800 CST5. 時間変換効率を最適化する方法実際の開発では、大量の時間変換が必要になる場合があります。 Golang 自身の時間を使用する パッケージを変換すると、プログラムの効率が大幅に低下します。現時点では、最適化のためにサードパーティのライブラリを使用できます。 現在、より一般的な時間変換ライブラリには次のものがあります。
以上がgolang 時間の変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。