Golang は比較的新しいプログラミング言語ですが、非常に高い操作効率と強力な同時処理能力のおかげで、開発者の間でますます支持されています。実際の開発では、時刻を別の形式の文字列に変換したり、文字列を時刻に変換したりすることがよくありますが、この記事では、Golang で時刻変換を効率的に実装する方法を紹介します。
Golang には、time.Time と time.Duration という 2 つの主な時間タイプがあります。このうち、time.Time は、2021 年 7 月 1 日 12 時など、特定の時刻を表すために使用できる時点を表し、time.Duration は、時間を表すために使用できる期間を表します。 10 秒、5 分など、特定の時点の間の範囲。
time.Time 型の時刻を文字列に変換する必要がある場合は、time.Time 型メソッドで Format() を使用できます。 。 Format() メソッドは、時刻形式レイアウトを入力パラメータとして受け取り、時刻を対応する文字列に形式設定します。
次はサンプル コードです:
package main import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t.Format("2006-01-02 15:04:05")) }
実行結果:
2021-07-01 12:00:00
次の表に示すように、フォーマット文字列では、異なる文字は異なる意味を表します。
意味 | |
---|---|
年( 使用された年)例) | #01 |
##02 | |
15 | |
03 | |
04 | |
05 | |
.000 | |
PM | |
月曜日 | |
Mon | |
Jan | |
Jan | |
MST | |
In定義済みの書式文字を使用するだけでなく、次のように書式指定文字列をカスタマイズすることもできます。 |
package main import ( "fmt" "time" ) func main() { str := "2021-07-01 12:00:00" layout := "2006-01-02 15:04:05" t, err := time.Parse(layout, str) if err != nil { fmt.Println(err) } fmt.Println(t) }
package main import ( "fmt" "time" ) func main() { t1 := time.Date(2021, 7, 1, 12, 0, 0, 0, time.Local) t2 := time.Date(2021, 7, 1, 12, 1, 0, 0, time.Local) duration := t2.Sub(t1) fmt.Println(duration) }
package main import ( "fmt" "time" ) func main() { timestamp := int64(1625133600) t := time.Unix(timestamp, 0) fmt.Println(t) }
2021-07-01 13:00:00 +0800 CST
上記のコードでは、時間を使用しています。Unix() メソッドは、time.Time 型の時刻 t を変換します。
時間操作に関する注意事項2) 時間を処理するときにタイム ゾーン変換を実行する必要がある場合は、2 つの変数 time.UTC() と time.Local を使用する必要があります。time.UTC() は協定世界時を表し、time.Localシステムの現在のタイムゾーンを表します。
3) 時間を処理するときに、年、月、日、時、分、秒などの時間の個別の部分を取得する必要がある場合は、 Year()、Month()、Day( )、Hour( time.Time 型の)、Minute()、Second() などのメソッド。
4) time.Duration 型変数を使用して期間を表す場合、time.ParseDuration() メソッドを使用して文字列型の期間を time.Duration 型変数に変換し、精度を制御できます。 . .
つまり、Golang を使用して時間を処理する場合は、時間の精度とプログラムの堅牢性を確保するために細部に注意を払う必要があります。
概要以上がGolang で時間変換を効率的に実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。