Rubyで日付の情報を取得する方法:Date

Rubyで今日の日付といった日付のデータを取得する方法について説明します。Rubyでは、DateクラスまたはDateTimeクラスを使い日付を取得します。

Dateクラスによる日付の取得

Rubyの標準ライブラリを読み込み、Dateクラスを使うことで日付オブジェクトを取得できます。今日の日付を取得するには、todayメソッドを使います。
require 'date'
day = Date.today

puts day
#=> 2016-09-09
日付オブジェクトはyearメソッドやmonthメソッドを使うことで、以下のように年や月だけを取得することもできます。
puts day.year
#=> 2016

特定の日付オブジェクトを取得する

また、特定の日の日付オブジェクトは、Date.new(2000, 1, 1)のように、Dateクラスのインスタンスを作成することで取得できます。 さらに、日付オブジェクトのn日後(前)を取得するには、インスタンスメソッドの+、-メソッドを使う、同じくnヶ月後(前)を取得するには、>>、<<メソッドを使いいます。
require 'date'
day = Date.new(2000, 1, 1)

#1日後(+メソッド)
puts day + 1
#=>2000-01-02

#1日前(-メソッド)
puts day - 1
#=>1999-12-31

#1ヶ月後(>>メソッド)
puts day >> 1
#=>2000-02-01

#1ヶ月前(<<メソッド)
puts day << 1
#=>1999-12-01

DateTimeクラスによる日時の取得

Dateクラスでは日付しか扱えませんが、DateクラスのサブクラスであるDateTimeクラスは日付と時間の両方をまとめて扱うことができます。 基本的な書式は、Dateクラスとよく似ています。ただし、現在の日時を取得するには、todayメソッドではなくnowメソッドを使います。
require 'date'

#今日の日付
day = DateTime.now
puts day
#=>2016-09-10T16:55:23+09:00

#1993年2月24日12時30分45秒のインスタンスを作成
day = DateTime.new(1993, 2, 24, 12, 30, 45)

#1日後
puts day + 1
#=>1993-02-25T12:30:45+00:00

#1日前
puts day - 1
#=>1993-02-23T12:30:45+00:00

#1ヶ月後
puts day >> 1
#=>1993-03-24T12:30:45+00:00

#1ヶ月前
puts day << 1
#=>1993-01-24T12:30:45+00:00

イベント

2017/12/05(火)
Design Thinking Square