ホームページ > バックエンド開発 > Golang > GoでJSONにマーシャリングする前に時間をUTCに変換するにはどうすればよいですか?

GoでJSONにマーシャリングする前に時間をUTCに変換するにはどうすればよいですか?

WBOY
リリース: 2024-02-09 19:00:11
転載
531 人が閲覧しました

在 Go 中将时间编组为 JSON 之前如何将时间转换为 UTC?

Go 言語では、時間を UTC に変換する前に、time パッケージで提供される関数とメソッドを使用して処理できます。まず、time.Now() 関数を使用して現在の現地時間を取得します。次に、time.LoadLocation("UTC") 関数を使用して UTC タイム ゾーンを読み込みます。次に、time.In() メソッドを使用して、現地時間を UTC 時間に変換します。最後に、 time.Format() メソッドを使用して、UTC 時間を必要な文字列形式にフォーマットします。このようにして、時刻を UTC に変換し、後続の処理と操作を実行できます。

質問の内容

marshaler インターフェイスを実装する time 構造体を定義して、json にマーシャリングされたときに終了するようにしようとしています。 with yyyy-mm-ddthh:mm:ssz 形式表現。つまり、時刻は UTC に変換され、最も近い秒に丸められます。次の手順を試しました:

リーリー

ただし、実行すると

と表示されます。 リーリー

対照的に、マーシャリングされる入力として time.now().utc().round(time.second) を渡すと (つまり、上の行のスニペットのコメントを使用します) 、目的の出力が得られます:

リーリー

私の質問は、marshaljson メソッド自体で、utc への変換と最も近い秒への四捨五入を実行できないのはなぜですか?

解決策

何をしたいですか?

あなたの marshaljson 関数を実行してみましたが、期待どおりに動作しました

これが私がやろうとしたことです:

リーリー

次の出力が得られました:

リーリー

最初の行は前の出力、2 行目は marshaljson 関数の出力です。

以上がGoでJSONにマーシャリングする前に時間をUTCに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート