Golang は、その効率性とシンプルさで広く知られている非常に人気のあるプログラミング言語です。アプリケーション開発では日付型の変換が必要になることが多いですが、Golangでの日付型変換の方法を紹介します。
Golang には、time.Time と string という 2 つの主要な日付タイプがあります。 time.Time 型は時点を表すことができますが、string 型は文字列型の表現です。 2 つの型の間で変換するには、Golang で提供されるいくつかの関数を使用できます。
Golang では、time.Parse() 関数を使用して、文字列型の日付を time.Time 型に変換できます。例は次のとおりです。
str := "2021-06-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)
解析関数 time.Parse() は 2 つのパラメータを渡す必要があります。1 つは日付文字列で、もう 1 つは日付文字列の形式です。上の例では、日付文字列は 2021-06-01 12:00:00
で、形式文字列は 2006-01-02 15:04:05
です。ここで注意が必要なのは、フォーマット文字列の数値を年、月、日、時、分、秒の順に並べ、対応するフォーマット文字を使用する必要があることです。
Golang では、time.Time 型の日付は、time.Format() 関数を通じて文字列型に変換できます。例は次のとおりです。
t := time.Now() layout := "2006-01-02 15:04:05" str := t.Format(layout) fmt.Println(str)
フォーマット関数 time.Format() は、解析関数の文字列フォーマットと同じフォーマット文字列を渡す必要があります。上記の例では、time.Now()
関数を使用して現在時刻を取得し、形式文字列は 2006-01-02 15:04:05
です。
Golang では、time.Unix() 関数を通じて Unix タイムスタンプを time.Time 型に変換できます。例は次のとおりです:
unixTime := int64(1622496000) t := time.Unix(unixTime, 0) fmt.Println(t)
関数 time.Unix() は 2 つのパラメータを渡す必要があります: 1 つは Unix タイムスタンプ、もう 1 つはナノ秒オフセットです。ここでは、0 がオフセットとして使用されます。
Golang では、time.Unix() 関数を使用して、time.Time 型を Unix タイムスタンプに変換できます。例は次のとおりです。
t := time.Now() unixTime := t.Unix() fmt.Println(unixTime)
関数 time.Unix() は Unix タイムスタンプを返します。タイムスタンプの型は int64 です。上記の例では、time.Now()
関数を使用して現在時刻を取得しています。
概要
Golang の日付型変換は難しいことではありません。適切な関数を使用するだけです。上記で紹介した 4 つの方法は、ほとんどの日付型変換のニーズを満たすことができます。もちろん、実際のアプリケーションでは考慮する必要があり、特定の状況に応じて調整する必要がある特殊なケースが多数ありますが、始めるにはこれで十分です。
以上がgolang の日付型変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。