特定の日付でIRBに新しい日付オブジェクトを作成するにはどうすればよいですか。以下は動作しませんでした。
1.9.3p194 :053 > require 'active_support'
=> true
1.9.3p194 :054 > Date.new
=> #<Date:0x9d80730>
1.9.3p194 :055 > Date.parse('12/01/2012')
NoMethodError: undefined method `parse' for Date:Class
from (irb):55
1.9.3p194 :055 > Date.new('12/01/2012')
ArgumentError: wrong number of arguments(1 for 0)
日付のドキュメント によると:
require 'date'
Date.new(2001,2,3) #=> #<Date: 2001-02-03 ...>
Date.jd(2451944) #=> #<Date: 2001-02-03 ...>
Date.ordinal(2001,34) #=> #<Date: 2001-02-03 ...>
Date.commercial(2001,5,6) #=> #<Date: 2001-02-03 ...>
Date.parse('2001-02-03') #=> #<Date: 2001-02-03 ...>
Date.strptime('03-02-2001', '%d-%m-%Y')
#=> #<Date: 2001-02-03 ...>
Time.new(2001,2,3).to_date #=> #<Date: 2001-02-03 ...>
1.9.3-p125 :012 > require 'date'
=> true
1.9.3-p125 :013 > Date::new(2012,02,03)
=> #<Date: 2012-02-03 ((2455961j,0s,0n),+0s,2299161j)>
1.9.3-p125 :014 >
Railsの外部でDateのactive_support拡張を取得しようとしている場合は、core_extモジュールを使用する必要があります。
require 'active_support/core_ext/date/calculations'
Date.parse('12/01/2012')
=> #<Date: 2012-01-12 ((2455939j,0s,0n),+0s,2299161j)>
この詳細情報Railsガイド: http://edgeguides.rubyonrails.org/active_support_core_extensions.html
セバスチャンルカロンネックの回答にコメントするのに十分な評判はありませんが、Date.new
よりも覚えやすいのは次のとおりです。
require 'active_support/core_ext/string'
'2019-03-31'.to_date
=> #<Date: 2019-03-21 ((2458564j,0s,0n),+0s,2299161j)>
https://apidock.com/Rails/String/to_date を参照してください
Date.strptime("2012-09-21 19:45:48","%Y-%m-%d %H:%M:%S")
require 'date'
Date::strptime("29-05-2017", "%d-%m-%Y")
したがって、このdateモジュールをコードに含めて、メソッドstrptimeを使用する必要があります。 strptimeメソッドの最初のパラメータとして1年が入力されているため、資本[〜#〜] y [〜#〜]を使用しました。日付が「29-05-17」のような場合は、小さなyを使用できます。
Ruby標準ライブラリ)の日付拡張子を使用する必要があります。ドキュメントのほとんどの例では、常にそれを要求するように示されているわけではありません。
require 'date'
あなたが必要としたものでした。これは、組み込みのクラスまたはモジュールのセットではありません。
その追加で2つのクラスを取得し、
Date
DateTime
これで docs にある情報を使用できるようになります