LotosLabo

プログラミング技術とか気になった情報を載せていきます

Ruby言語について14

Timeクラス


Timeオブジェクトを格納する変数 = Time.new

t = Time.new
t = Time.now 

nowメソッドでも可能




例:

t1 = Time.new
print(t1, "\n")

t2 = Time.now
print(t2, "\n")



出力

2013-11-10 20:44:40 +0900
2013-11-10 20:44:40 +0900


年月日などの時刻要素を取得する

sec 秒を整数で取得
min 分を整数で取得
hour 時を整数で取得
mday 日を整数で取得
day mdayの別名
mon 月を整数で取得
month monの別名
year 年を整数で取得
wday 曜日を0(日曜日)から6(土曜日)の整数で取得
yday 1月1日からの通算日を整数で取得
isdst 夏時間があるなら true
dst? isdstの別名
zone タイムゾーンを表す文字列で取得



例:

t = Time.now
print(t.year, "年", t.month, "月", t.day, "日")


指定の日時のTimeオブジェクトを作成する


例:

youbi = %w[日 月 火 水 木 金 土]
t = Time.local(2007)

print(t.year, "年", t.month, "月", t.day, "日\n")
print(youbi[t.wday], "曜日\n")
print(t.hour, "時", t.min, "分", t.sec, "秒\n")
print("TimeZone:", t.zone, "\n")
print("今年の元旦から数えて", t.yday, "日目\n")


出力:

2007年1月1日
月曜日
0時0分0秒
TimeZone:東京 (標準時)
今年の元旦から数えて1日目



指定フォーマットで文字列に変換する

変数 = Timeオブジェクト.strftime(format文字列)


%A 曜日の名称(Sunday, Monday ... )
%a 曜日の省略名(Sun, Mon ... )
%B 月の名称(January, February ... )
%b 月の省略名(Jan, Feb ... )
%c 日付と時刻
%d 日(01-31)
%H 24時間制の時(00-23)
%I 12時間制の時(01-12)
%j 年中の通算日(001-366)
%M 分(00-59)
%m 月を表す数字(01-12)
%p 午前または午後(AM,PM)
%S 秒(00-60) (60はうるう秒)
%U 週を表す数。最初の日曜日が第1週の始まり(00-53)
%W 週を表す数。最初の月曜日が第1週の始まり(00-53)
%w 曜日を表す数。日曜日が0(0-6)
%X 時刻
%x 日付
%Y 西暦を表す数
%y 西暦の下2桁(00-99)
%Z タイムゾーン
%% %自身


例:

t = Time.now
strTime = t.strftime("現在時刻 %H時 %M分 %S秒")
print(strTime, "\n")

strDay = t.strftime("現在日時 %B,%d(%A) %Y %Z")
print(strDay, "\n")



起算時からの経過秒数を取得する

変数 = Timeオブジェクト.to_f
変数 = Timeオブジェクト.to_i
変数 = Timeオブジェクト.tv_sec



時刻の加減算

t = Time.now
t = t + 10
t = t - 8


協定世界時との時差を取得する


jisa = Time.now.utc_offset


Dateクラス


Dateクラスは組み込みクラスとはなっていない為、Dateクラスを使うにはまずプログラムファイルの中で次の一文を記述する必要があります。


require "date"

オブジェクト作成
Date.new([year[, mon[, mday[, start]]]])



例:

require "date"
d = Date.new(2007, 5 ,30)



本日の日付のDateオブジェクト作成する

例:

require "date"

d = Date.new(2007, 2 ,4)
print(d, "\n")

dt = Date.today
print(dt)


出力

2007-02-04
2013-11-10


月末の日付でDateクラスのオブジェクトを作成する


例:

require "date"

day1 = Date.new(2007, 3 ,-1)
print(day1, "\n")
day2 = Date.new(2007, 4 ,-1)
print(day2, "\n")
day3 = Date.new(2007, 5 ,-1)
print(day3, "\n")


出力

2007-03-31
2007-04-30
2007-05-31



年月日などの日付要素を取得する


例:

require "date"

d = Date.today
print(d.year, "年", d.month, "月", d.day, "日")


日付の加減算


例:

require "date"

d = Date.today
afterDay = d + 1
beforeDay = d - 5


指定フォーマットで文字列に変換する


Dateオブジェクト.strftime([format])



DateTimeクラス


require "date"

現在の日付のDateTimeオブジェクト作成する


例:

require "date"

d = DateTime.new(2007, 2 ,4, 16, 20, 45, 0.375)
print(d, "\n")

tn = DateTime.now
print(tn)


出力

2007-02-04T16:20:45+09:00
2013-11-10T20:58:32+09:00


時分秒などの時刻要素を取得する


例:

d = DateTime.now

print(d.year, "年", d.month, "月", d.day, "日\n")
print(d.hour, "時", d.min, "分", d.sec, "秒", d.zone, "\n")
print("Offset:", d.offset, "\n")


出力

2013年11月10日
20時59分32秒+09:00
Offset:3/8


時刻も含めて指定フォーマットで文字列に変換する


DateTimeオブジェクト.strftime([format])