不同于C#中的DateTime,在ruby中日期和时间分别对应了Date和Time两个类。
1.1 日期
require "date"
date = Date.new(2013,5,28)
date = date-1 #昨天
date = date >> 1 #下月
puts date.leap? #闰年判断
puts date.to_s
puts "%s_%s_%s" % [date.year, date.month, date.day]
1.2 时间
require "date"
time = Time.now.strftime("%Y-%m-%d %H:%M:%S")
puts time
time = Time.now #等同Time.new
time = time+5 #加5分钟
puts time
strftime 方法中可用的格式化符号
%A: 星期的名称(如:Sunday, Monday ... )
%a: 星期的名称缩写(如:Sun, Mon ... )
%B: 月份的名称(如:January, February ... )
%b: 月份的名称缩写(如:Jan, Feb ... )
%c: 日期,时刻(如:02/23/10 16:43:49)
%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)
%w: 一周的天数,周日(0)开始算起(0-6)
%X: 时刻
%x: 日期
%Y: 表示4位数年份(如:2010)
%y: 表示2位数年份(如:10)
%Z: 时区
%%: 显示%符号自身
1.3 随机数
r = Random.new()
puts r.rand
puts r.rand(10..100)
1.4 正则表达式
正则表达式使使用/pat/或%r{pat}表示,返回匹配到的字符串。
操作符=~也可以用于正则匹配,返回匹配到的字符串索引,该匹配为双向匹配。
puts /hay/.match("ahaystack") #hay
puts /ahaystack/.match("hay") #nil
puts /hay/ =~ 'ahaystack' #=> 1
puts 'ahaystack' =~ /hay/ #=> 1
a = "HELLO"
case a
when /^[a-z]*$/; print "Lower case\n"
when /^[A-Z]*$/; print "Upper case\n"
else; print "Mixed case\n"
end