ホームページ >バックエンド開発 >Golang >Golangで時間を変換する方法

Golangで時間を変換する方法

PHPz
PHPzオリジナル
2023-04-23 10:13:431585ブラウズ

Golang は、処理時間の点で優れたパフォーマンスと柔軟性を提供する新興プログラミング言語です。開発中、時間を Unix タイムスタンプ、文字列、指定されたタイム ゾーンの日付と時刻など、さまざまな形式に変換する必要があることがよくあります。この記事では、Golang での時間変換に焦点を当てます。

  1. Unix タイムスタンプから時間への変換

時間パッケージは、Golang で時間操作を実行するために使用されます。 Unix タイムスタンプは、1970 年 1 月 1 日 00:00:00 UTC からの秒数を指します。 time.Unix 関数を使用して、Unix タイムスタンプを time.Time 型 (Golang で時刻と日付を表す構造体) に変換できます。

たとえば、Unix タイムスタンプ 1562725815 を時間オブジェクトに変換するには、次のように実行できます。

timestamp := int64(1562725815)
t := time.Unix(timestamp, 0)
fmt.Println(t) // 输出:2019-07-10 02:30:15 +0000 UTC

上記のコードでは、まず Unix タイムスタンプを定義し、それを に渡されるパラメータとして使用します。 time.Unix 関数。この関数は time.Time オブジェクトを返します。Println 関数を使用してその値を出力できます。

  1. Time to Unix タイムスタンプ

time.Time 型の Unix メソッドを使用して、時間を Unix タイムスタンプに変換できます。 Unix メソッドは秒とナノ秒を返しますが、オプションでナノ秒を無視することもできます。

たとえば、時間オブジェクト t を Unix タイムスタンプに変換するには、次の操作を実行できます。

timestamp := t.Unix()
fmt.Println(timestamp) // 输出:1562725815

上記のコードでは、 t.Unix() メソッドを呼び出して取得します。時間オブジェクト t Unix タイムスタンプ。

  1. Time to string

時間を文字列に変換するには、time.Time 型の Format メソッドと指定された形式の文字列を使用します。 Golang の時刻形式文字は、ANSI C 言語標準に基づいています。

たとえば、時刻オブジェクト t を「2006-01-02 15:04:05」という形式の文字列に変換するには、次の操作を実行できます。上のコードでは、まず書式文字列レイアウトを定義し、それをパラメータとして t.Format メソッドに渡します。このメソッドは、レイアウト形式に従って生成された文字列を返します。

文字列を時間に変換する
  1. time.Parse 関数を使用して、文字列を時間オブジェクトに解析できます。この関数を使用するには、フォーマット文字列と解析する文字列を指定する必要があります。

たとえば、文字列「2019-07-10 02:30:15」を「2006-01-02 15:04:05」の形式で時刻オブジェクトに解析するには、次のコマンドを実行できます。

layout := "2006-01-02 15:04:05"
str := t.Format(layout)
fmt.Println(str) // 输出:2019-07-10 02:30:15

上記のコードでは、まず解析対象の書式文字列レイアウトと文字列 str を定義し、次にそれらをパラメータとして time.Parse 関数に渡します。この関数は time.Time オブジェクトとエラーを返します。解析が失敗した場合は、エラーが発生します。

タイム ゾーンの変換
  1. 時間の変換を行うとき、タイム ゾーンの違いを考慮する必要がある場合があります。 Golang の time パッケージには、タイムゾーン変換の処理に役立つ LoadLocation 関数があります。

たとえば、現地時間を UTC 時間に変換するには、次の操作を実行できます。

layout := "2006-01-02 15:04:05"
str := "2019-07-10 02:30:15"
t, err := time.Parse(layout, str)
if err != nil {
    panic(err)
}
fmt.Println(t) // 输出:2019-07-10 02:30:15 +0000 UTC

上記のコードでは、まずタイム ゾーンを現地のタイム ゾーンに設定してから、 time.ParseInLocation メソッド 文字列を時刻オブジェクトに解析します。解析された時刻はローカル オブジェクトです。次に、local.In(time.UTC) メソッドを使用して、ローカル オブジェクトを UTC 時間に変換します。

概要

Golang の時間変換は非常に柔軟です。時間オブジェクトを、指​​定されたタイムゾーンの Unix タイムスタンプ、文字列、または日付と時刻に変換できます。また、これらのタイプのデータを時間オブジェクトに変換することもできます。時間を扱うときはタイムゾーンの違いに必ず注意してください。そうしないと、不正確な結果が得られる可能性があります。 Golang の時間変換機能を正しく使用することで、効率的で信頼性の高いアプリケーションをより簡単に構築できます。

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

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