気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

RubyのTimeクラスの基本的な扱い方

Timeオブジェクトの生成

p Time.new                         #=> 2014-05-09 12:01:33 +0900  # 現在日時のTimeオブジェクトを生成する
p Time.now                         #=> 2014-05-09 12:01:33 +0900  # newと同様
p Time.local(1999,12,31,23,59,59)  #=> 1999-12-31 23:59:59 +0900  # 指定の日時で生成する

現在の時刻を取得する

day = Time.now
p day #=> "Sun May 20 23:48:45 JST 2001"
p day.year #=> 2001
p day.month #=> 5
p day.day #=> 20
p day.hour #=> 23

時刻を任意のフォーマットで扱う

Time.now.strftime("%Y-%m-%d %H:%M:%S") #=> "2009-03-01 00:31:21"

上記フォーマットに指定した記号

%Y 西暦を表す数
%m 月を表す数字(01-12)
%d 日(01-31)
%H 24時間制の時(00-23)
%M 分(00-59)
%S 秒(00-60) (60はうるう秒)

時刻オブジェクトを文字列に変換する

#Time#to_sメソッドにより時刻オブジェクトを文字列へ変換
day = Time.now
p day.to_s #=> "Now, Sunday May 20 23:33:37 JST 2001"

時間の加減(秒指定)

時刻オブジェクトに任意の時間(秒指定)を加減することができる

# 1秒加算
day = Time.local(2001, 5, 20, 23, 59, 59) #=> Sun May 20 23:59:59 JST 2001
day = day + 1 #=>  Mon May 21 00:00:00 JST 2001

# 1日加算
day = Time.local(2000, 12, 31, 0, 0, 0) #=> Sun Dec 31 00:00:00 JST 2000
day = day + 24*60*60 #=>  Mon Jan 01 00:00:00 JST 2001

参考URL

逆引きRuby - 日付と時刻