※こちらの記事は、プロスタ編集部が学習者の多いRubyの文法記事を公開することで、皆様の学習にお役に立ちたい意図で投稿しております。
参考サイト:【Ruby入門】日付と時刻を取得する方法
#【Ruby入門】日付と時刻を取得する方法(Dateクラス)
Rubyで時刻や日付を取得したい場合、DateクラスやDateTimeクラスを使用します。
##日付を取得する
日付を取得する場合は、Dateクラスを使用します。
例えば、今日の日付を取得して表示させるプログラムは以下のようになります。
require "date" #Dateクラスを使えるようにする
now = Date.today #Date.today(今日の日付)を変数todayに代入する
puts now #変数nowを表示させる。(=変数nowの中に格納されている今日の日付を表示する)
出力すると、以下のように表示されました。(2016年9月12日時点)
このように、プログラムが実行された時点での日付を簡単に表示させることができます。
ちなみに、3行目の変数のうしろにメソッドを付けることによって、表示させたい情報のみを抜き出して取り出すこともできます。
year : 年のみを取り出す
month : 月のみを取り出す
day : 日のみを取り出す
例えば、現在は何月なのかを表示するプログラムは以下のようになります。
require "date"
thisMonth = Date.today
puts "現在は#{thisMonth.month}月です。"
このプログラムを実行すると、以下のように表示されます。
現在は9月です。
もちろん同じようにして、日付のみ表示させたり年のみ表示させたりすることもできます。
##時刻を取得する
Dateクラスは日付のみを取得できましたが、時刻も扱いたい場合にはDateTimeクラスを使用します。DateTimeクラスでは日付と時刻を両方扱えます。
現在の時刻を表示させるプログラムは以下のようになります。日付を表示するのとほとんど同じです。
require "date" #DateTimeクラスを使えるようにする
nowTime = DateTime.now #.DateTime.now(現在の時刻)を変数nowTimeに代入する
puts nowTime #変数nowTimeを表示させる。(=変数nowTimeの中に格納されている今の時刻を表示する)
このプログラムを実行すると以下のように表示されます。(2016年9月15日 20時41分時点)
2016-09-15T20:41:22+9:00
馴染みのない表記ですが、これは世界スタンダードの時刻表記です。よく見ると、その日の日付と今の時刻がTで区切って表示されています。
さらにこれも、Dateクラスと同じように任意の情報だけを抜き出すことができます。
DateTimeクラスでも、Dateクラスで使用できるメソッドの時に使用できる3つに加えて、以下の時間に関わるメソッドが使用できます。
hour : 時を表示する
minute : 分を表示する
second : 秒を表示する
これを使用して、現在の時・分・秒を表示するプログラムを書いてみます。
require "date"
nowTime = DateTime.now
puts "現在の時刻は#{nowTime.hour}時#{nowTime.minute}分#{nowTime.second}秒です。"
このプログラムを実行すると、以下のように表示されます。
現在の時刻は20時50分25秒です。puro
このように、プログラムを実行した時点の現在時刻が表示されます。日付だけ使いたいとき、時刻も一緒に扱いたいときなど、場面に応じて二つのクラスを使い分けるとよいでしょう。