ruby time

  Ruby时间日期处理

2008-07-08 18:01:45|  分类: Ruby |  标签: |字号大中小 订阅

我们可以使用Time类来生成一个当前时间的对象:

t=Time.new

t=Time.now

Time类有类方法mktime(同义方法是local方法)来根据传入的参数生成时间对象,并且它使用的是当前的时区:

t1=Time.mktime(2001)#January1,2001at0:00:00

t2=Time.mktime(2001,3)

t3=Time.mktime(2001,3,15)

t4=Time.mktime(2001,3,15,21)

t5=Time.mktime(2001,3,15,21,30)

t6=Time.mktime(2001,3,15,21,30,15)#March15,20019:30:15pm

Time.gm(同义方法是Time.utc)方法基本上和上面的mktime用法相同,但它使用的是GMT或UTC时区

t8=Time.gm(2001,3,15,21,30,15)

t9=Time.utc(2001,3,15,21,30,15)

生成的时间对象有一个to_a方法,可以把时间相关一信息转化成一个数组,数组中存放的信息格式如下:

seconds,

minutes,

hours,

day,

month,

year,

dayofweek(0..6),

dayofyear(1..366),

daylightsaving(trueorfalse),

andtimezone(asastring)

因此,我们也可以这么用:

t0=Time.local(0,15,3,20,11,1979,2,324,false,"GMT-8:00")

t1=Time.gm(*Time.now.to_a)

使用秒数来创建日期:

====================================================

在内部,日期存储为一个整数,代表从1970年开始到当前的秒数,我们可以获取这么秒数或则利用这个秒数来创建日期:

epoch=Time.at(0)#Findtheepoch(1Jan1970GMT)

newmil=Time.at(978307200)#HappyNewMillennium!(1Jan2001)

now=Time.now#16Nov200017:24:28

sec=now.to_i#974424268

日期的格式化

====================================================

获取本日是星期几:

now=Time.now+1

day_num=now.wday#3

day_abbr=now.strftime("%a")#Wed

day_full=now.strftime("%A")#Wednesday

获取一年中本日所在的周:

t1=Time.local(2002,5,1)

1=Date.new(2002,5,1)

week1a=t1.strftime("%U").to_i#17

week1b=t1.strftime("%W").to_i#17

week1c=d1.cweek#18

获取当前时区:

z1=Time.gm(2000,11,10,22,5,0).zone#"UTC"

z2=Time.local(2000,11,10,22,5,0).zone#"中国标准时间"

格式化时间

====================================================

t=Time.now

putst.strftime("%H:%M:%S")#22:07:45

putst.strftime("%H:%M")#22:07

puts(t+30).strftime("%H:%M")#22:08(加了30秒)

putst.strftime("%I:%M%p")#10:07PM

所有strftime方法中可用的格式化符号:

=====================================================

%a星期的缩写,如Wed

%A星期的全称,如Wednesday

%U本星期在全年中所属的周数

%W

%H小时(24小时制)

%M分钟

%S秒

%I小时(12小时制)

%pPM或AM

%b月份的缩写,如Jan

%B月份的全称,如January

%c本地日期和时间,如06/14/0716:43:49

%d日期(1..31)

%j本日在一年中所属的天(1..366)

%m月份(1..12)

%w星期的数字形式(0..6)

%x本地日期,如06/14/07

%Y本地时间,如16:43:49

%y2位的年份表示,如07

%Y4位的年份表示,如2007

%Z时区名,如"中国标准时间"

%%    字面符号%

http://xcily1.blog.163.com/blog/static/287169162008686145601/

相关推荐