Time, Date オブジェクトとは?
日付や時間を表すオブジェクトです。
Time オブジェクトの扱い方
現在時刻
例えば now メソッドで現在時刻を取得できます。
irb(main):020:0> Time.now
=> 2020-11-13 23:26:39.001668 +0900
任意の時刻
newメソッドで任意の日時を表す Time オブジェクトを生成できます。
irb(main):021:0> datetime = Time.new(2020, 1, 1, 12, 30
)
=> 2020-01-01 12:30:00 +0900
表示フォーマットの指定(Time)
strftime メソッドを使うことで指定したフォーマットで日時を表示できます。
例えば 2020-01-01 12:30 というようなフォーマットで表示させるには次のように書きます。
irb(main):021:0> datetime = Time.new(2020, 1, 1, 12, 30
)
=> 2020-01-01 12:30:00 +0900
irb(main):022:0> datetime.strftime('%Y-%m-%d %H:%M')
=> "2020-01-01 12:30"
irb(main):023:0>
Date オブジェクトの扱い方
Time オブジェクトと違い、時刻まで扱う必要がないときにはこちらを使用します。
なお、事前に date ライブラリを読み込んでから使います。
irb(main):023:0> require 'date'
=> true
irb(main):024:0> Date
=> Date
本日の日付を取得
today メソッドを使用します。
irb(main):025:0> Date.today
=> #<Date: 2020-11-13 ((2459167j,0s,0n),+0s,2299161j)>
任意の日付を設定
Time と同じく new を使います。
irb(main):029:0> Date.new(2020, 1, 1)
=> #<Date: 2020-01-01 ((2458850j,0s,0n),+0s,2299161j)>
表示フォーマットの指定(Date)
Time オブジェクトと同じく、フォーマットを指定して日付を表すことも可能です。
ここでは Date オブジェクトから 2020/01/01 形式で表示させます。
irb(main):030:0> Date.new(2020, 1, 1).strftime('%Y/%m/%
d')
=> "2020/01/01"