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 サイトの他の関連記事を参照してください。