golangの日付変換

王林
王林オリジナル
2023-05-21 14:16:071163ブラウズ

Golang の日付変換

Golang では、time.Time、string、int64 など、日付を表すさまざまな方法があります。したがって、これらの日付をどのように変換するかはよくある質問です。

この記事では、Golang での一般的な日付変換方法を紹介します。これには主に次の側面が含まれます:

  1. time.Time から string
  2. string から time.Time
  3. int64 から time.Time
  4. time .Time から int64
  5. 他の形式での日付変換
  6. time.Time から string

time.Time 型は、Format 関数を使用して文字列に変換できます。 。例:

t := time.Now()
str := t.Format("2006-01-02 15:04:05") // 以指定格式转换为字符串

このうち、Format のパラメータは日付フォーマット文字列となっており、具体的なフォーマットについては Golang のドキュメントを参照してください。

  1. 文字列を time.Time に変換する

文字列を time.Time に変換するには、time.Parse 関数を使用します。例:

str := "2022-03-25 10:30:00"
t, err := time.Parse("2006-01-02 15:04:05", str) // 将字符串解析成时间
if err != nil {
    // 解析失败
}

最初のパラメータは日付形式文字列で、2 番目のパラメータは解析する必要がある文字列です。解析が失敗した場合、err は空ではありません。

  1. int64 から time.Time

Golang では通常、タイムスタンプは int64 型で表されますが、time.Unix 関数を使用して time.Time 型に変換できます。例:

timestamp := int64(1648238400)
t := time.Unix(timestamp, 0) // 将时间戳转换成时间

最初のパラメータはタイムスタンプ、2 番目のパラメータはナノ秒で、0 に設定できます。

  1. time.Time から int64

time.Time 型は、Unix 関数を使用してタイムスタンプに変換できます。例:

t := time.Now()
timestamp := t.Unix() // 将时间转换成时间戳

この関数は、int64 型のタイムスタンプを返します。

  1. 他の形式での日付変換

他の形式の日付を time.Time 型に変換する必要がある場合は、まず文字列型に変換してから、使用時間. Parse 関数の解析。例:

date := "2022年03月25日 10时30分00秒"
layout := "2006年01月02日 15时04分05秒" // 对应日期格式字符串
str, err := time.Parse(layout, date) // 先将其转换成字符串
if err != nil {
    // 解析失败
}
t, err := time.Parse("2006-01-02 15:04:05", str.Format("2006-01-02 15:04:05")) // 再解析成时间
if err != nil {
    // 解析失败
}

上記は、Golang での一般的な日付変換方法です。 time.Time を文字列に変換する場合でも、文字列を time.Time に変換する場合でも、Golang 標準ライブラリの関数を使用して変換できます。他の形式の日付の場合は、まず文字列型に変換してから、time.Parse 関数を使用して解析します。

以上がgolangの日付変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。