1. ホーム
  2. ruby-on-rails

[解決済み] RubyでUTCタイムスタンプをISO 8601に変換する。

2023-04-18 04:11:26

質問

UTCのタイムスタンプがあります。

"2010-10-25 23:48:46 UTC"です。

ISO 8601に変換する必要がある

"2010-10-29 06:09Z"

ドキュメントが地獄のように混乱しています。最も簡単な方法は何ですか?

どのように解決するのですか?

私たちをだまそうとしているのでは?

ご質問の入力日付は 2010 年 10 月 25 日 であるのに対し、出力は 29 日 であり、2010年10月の . よくやった!

この小難しいスレッドの続きです:あなたの時間も完全に異なっていて、出力時間から秒が抜けています。

さて、本当の答えです。

RubyのISO 8601の出力は、次のようなquot;Combined date and time"の出力と類似しています。 ISO 8601 の Wikipedia ページ .

文字列を得たので、それを変換して Time オブジェクトに変換する必要があります。 to_time . そうすると、単純に iso8601 を呼び出すだけで、ISO 8601 バージョンが得られます。

"2010-10-25 23:48:46 UTC".to_time.iso8601

to_time メソッドはRailsの提供するものであり、一方 iso8601 はRubyの標準ライブラリから提供されています。