Go言語で日付を扱う方法
Go言語で日付を扱う方法について説明します。
Go言語では、標準ライブラリの time パッケージを使用して、日付や時間の処理を行います。
time パッケージには、日付や時間を取得、操作、フォーマットするためのさまざまな機能が提供されています。
日付と時間の取得
日付と時間を取得するには、time パッケージの Now 関数を使用します。
これにより、現在の日時を Time 型で取得できます。
例えば、次のコードは現在の日時を取得して表示します。
package main import ( "fmt" "time" ) func main() { currentTime := time.Now() fmt.Println("Current Time:", currentTime) }
日付と時間のフォーマット
Time 型の値を特定のフォーマットで文字列として表示するには、Format メソッドを使用します。
Format メソッドには、標準のフォーマット文字列を指定する必要があります。
Goでは、フォーマット文字列には特定の日付を基にした例を使用します。
例えば、"2006-01-02 15:04:05" という文字列が用意されており、これは 2006年1月2日 15:04:05 を表しています。
以下のコードは、現在の日時を "2006-01-02 15:04:05" 形式で表示します。
package main import ( "fmt" "time" ) func main() { currentTime := time.Now() formattedTime := currentTime.Format("2006-01-02 15:04:05") fmt.Println("Formatted Time:", formattedTime) }
日付と時間のパース
文字列から Time 型に変換するには、Parse 関数を使用します。
Parse 関数には、対象のフォーマット文字列と日付の文字列を指定します。
次の例では、特定のフォーマットに従った文字列を Time 型に変換しています。
package main import ( "fmt" "time" ) func main() { layout := "2006-01-02 15:04:05" dateString := "2024-08-27 14:30:00" parsedTime, err := time.Parse(layout, dateString) if err != nil { fmt.Println("Error:", err) return } fmt.Println("Parsed Time:", parsedTime) }
時間の操作
Time 型の値に対して時間の加算や減算を行うには、Add メソッドを使用します。
Add メソッドには Duration 型の値を指定します。
Duration 型は、時間の長さを表すための型です。
次のコードは、現在の日時に2時間を加算して表示します。
package main import ( "fmt" "time" ) func main() { currentTime := time.Now() futureTime := currentTime.Add(2 * time.Hour) fmt.Println("Future Time:", futureTime) }
タイムゾーンの処理
Time 型にはタイムゾーンの情報が含まれており、Location 型を使用してタイムゾーンを取得または設定できます。
タイムゾーンの取得は Location メソッドを使用し、設定は In メソッドを使用します。
次の例では、UTCタイムゾーンの時間を表示します。
package main import ( "fmt" "time" ) func main() { currentTime := time.Now() utcTime := currentTime.In(time.UTC) fmt.Println("UTC Time:", utcTime) }
Go言語の time パッケージを使用することで、日付と時間に関する多くの操作が簡単に行えます。