💎

RubyのTime/Dateオブジェクトについて解説

2021/03/30に公開

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"

Discussion