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

[解決済み] Rubyの文字列から日付への変換

2022-01-29 06:42:10

質問

Ruby on Railsで、ある問題に直面しています。私は形式の文字列を変換するために探しています Tue, 10 Aug 2010 01:20:19 -0400 (EDT) を日付オブジェクトに変換します。

どうにかして、これを行うことはできないでしょうか。

以下は、私が調べて試したものですが、うまくいきませんでした。

  1. Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z")
  2. クロニックパーサー
  3. ルビー:文字列を日付に変換する
  4. Rubyを使ったテキストからの日付のパース

よろしくお願いします。

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

で何が問題なのか? Date.parse メソッドを使用します。

str = "Tue, 10 Aug 2010 01:20:19 -0400 (EDT)"
date = Date.parse str
=> #<Date: 4910837/2,0,2299161>
puts date
2010-08-10

動作するようです。

ここで唯一の問題は、タイムゾーンです。もしUTCタイムゾーンの日付が欲しいのであれば、このように Time オブジェクトがありますが、ここでは文字列とします。

str = "Tue, 10 Aug 2010 01:20:19 +0400"
puts Date.parse str
2010-08-10
puts Date.parse(Time.parse(str).utc.to_s)
2010-08-09

を変換する簡単な方法は見つかりませんでした。 TimeDate .