ソフトウェア開発では、処理時間は繰り返し発生する問題です。特に大規模システムでは、イベントの記録、タスクのスケジュール設定、データの分析に時間は不可欠です。したがって、適切な時間処理ライブラリを使用することが非常に重要な作業になります。この記事ではGo言語の時間処理ライブラリtime
の使い方を紹介します。
Go 言語では、time.Time
型を使用して時間を表現できます。 Time
型の値には、年、月、日、時、分、秒、ナノ秒、およびタイム ゾーンの情報が含まれます。このタイプは組み込みであるため、使用するために追加のライブラリをインストールする必要はありません。
現在の現地時刻を取得する方法は、time.Now()
関数を使用することです。これは、プログラム実行時の現在時刻を表す time.Time
型の時刻オブジェクトを返します。
func main() { current_time := time.Now() fmt.Println(current_time) }
出力結果:
2021-05-17 16:34:22.7241986 +0800 CST m=+0.000731901
時刻をさまざまな形式で表示することは、非常に一般的な要件です。 Go 言語では、time.Format()
関数を使用して時刻をフォーマットできます。この関数はフォーマット文字列を受け取り、このフォーマットに従って時刻オブジェクトを対応する文字列に変換します。
func main() { current_time := time.Now() formatted_time := current_time.Format("2006-01-02 15:04:05") fmt.Println(formatted_time) }
出力結果:
2021-05-17 16:34:22
フォーマット文字列では、一般的に使用されるいくつかのプレースホルダーは次のとおりです。
プレースホルダー 記号 | means |
---|---|
2006 |
は 4 桁の年に固定されており、標準 ## を示します。 |
#01
| は2桁の月に固定されています。2桁に満たない場合は0#を追加します。 ## は左側 |
# は 2 桁の日付として固定されます。2 桁に満たない場合は、0 ## を追加します。 | ##15|
| 04|
| 05|
| #時間操作Go言語の時間処理ライブラリにもいくつかの時間操作メソッドが用意されています。 |
このメソッドを使用すると、期間を追加または短縮できます:
func main() { current_time := time.Now() after_one_hour := current_time.Add(time.Hour) fmt.Println(after_one_hour) }
2021-05-17 17:34:22.6523704 +0800 CST m=+3601.928903701
この例では、time.Hour
を使用して 1 時間の長さを表し、
メソッドを使用して現在時刻を追加します。この長さまで。このメソッドの戻り値は、現在時刻から 1 時間後の時点を表す time オブジェクトです。
time.Sub()
メソッドを使用して 2 つの時刻間の時差を計算することもできます: <pre class='brush:go;toolbar:false;'>func main() {
start_time := time.Now()
end_time := time.Now().Add(time.Hour)
duration := end_time.Sub(start_time)
fmt.Println(duration)
}</pre>
出力結果:
1h0m0s
ここ計算結果は time.Duration
型の値で、2 つの時点間の時間の長さを表します。
Set time
time.Date()
メソッドを使用すると、指定された年、月、日、時、分、秒、および時刻に基づいて時刻オブジェクトを作成できます。ゾーン:
func main() { t := time.Date(2021, 5, 17, 15, 30, 0, 0, time.Local) fmt.Println(t) }
2021-05-17 15:30:00 +0800 CST
時刻情報の取得
型には、年、月、時刻などの時刻情報を取得するメソッドがいくつかあります。日、時、分、秒など一般的に使用されるメソッドの一部を次に示します。
func main() { current_time := time.Now() fmt.Println(current_time.Year()) // 获取年份 fmt.Println(current_time.Month()) // 获取月份 fmt.Println(current_time.Day()) // 获取日期 fmt.Println(current_time.Hour()) // 获取小时数 fmt.Println(current_time.Minute()) // 获取分钟数 fmt.Println(current_time.Second()) // 获取秒数 fmt.Println(current_time.Weekday()) // 获取星期几,0表示星期日 }
2021 May 17 16 34 22 Monday
参考ドキュメント
以上がGo言語の時間処理ライブラリの利用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。