或
t = Time.now
Time類有類方法mktime(同義方法是local方法)來根據傳入的參數生成時間對象,並且它使用的是當前的時區:
t1 = Time.mktime(2001) # January 1, 2001 at 0: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) # March 15, 2001 9:30:15 pm
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,
day of week (0..6),
day of year (1..366),
daylight saving (true or false),
and time zone (as a string)
因此,我們也可以這麼用:
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) # Find the epoch (1 Jan 1970 GMT)
newmil = Time.at(978307200) # Happy New Millennium! (1 Jan 2001)
now = Time.now # 16 Nov 2000 17: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
puts t.strftime("%H:%M:%S") # 22:07:45
puts t.strftime("%H:%M") # 22:07
puts (t + 30).strftime("%H:%M") # 22:08 (加了30秒)
puts t.strftime("%I:%M %p") # 10:07 PM
所有strftime方法中可用的格式化符號:
=====================================================
%a 星期的縮寫,如Wed
%A 星期的全稱,如Wednesday
%U 本星期在全年中所屬的週數
%W
%H 小時(24小時制)
%M 分鐘
%S 秒
%I 小時(12小時制)
%p PM 或 AM
%b 月份的縮寫,如 Jan
%B 月份的全稱,如 January
%c 本地日期和時間,如 06/14/07 16:43:49
%d 日期 (1..31)
%j 本日在一年中所屬的天 (1..366)
%m 月份 (1..12)
%w 星期的數字形式 (0..6)
%x 本地日期,如 06/14/07
%Y 本地時間,如 16:43:49
%y 2位的年份表示,如07
%Y 4位的年份表示,如2007
%Z 時區名,如"中國標準時間"
%% 字面符號%