Time的常用函數
時間對象. Time.now返回當前時間.
Time.at(time[, usec])
返回time所指時間的Time對象. time可以是Time對象,也可以是表示自起算時間以來的秒數的整數或浮點數.
若浮點精度不夠時,可以使用usec. 它將返回time +(usec/1000000)所表示的時間. 此時,time和usec都必需是整數.
生成的Time對象將使用地方時的時區.
Time.gm(year[, mon[, day[, hour[, min[, sec[, usec]]]]]])
Time.gm(sec, min,hour, mday, mon, year, wday, yday, isdst, zone)
Time.utc(year[,mon[, day[, hour[, min[, sec[, usec]]]]]])
Time.utc(sec,min, hour, mday, mon, year, wday, yday, isdst, zone)
返回由參數指定的協調世界時的Time對象. 第1參數后面的全是可選參數. 若省略這些參數的話,將使用最小的可能值.
這些參數也可以處理字符串.
例:
p Time.gm *"2002-03-17".split("-")[v1] # => Sun Mar 17 00:00:00UTC 2002
等價於p Time.gm(*"2002-03-17".split("-"))
rails中可以通過parse由字符串可以直接轉化為時間
p Time.parse(“2002-03-17”) #=> Sun Mar 17 00:00:00 +0800[v2] 2002
Time.local(year[, mon[, day[, hour[, min[, sec[,usec]]]]]])
Time.local(sec, min, hour, mday, mon, year,wday, yday, isdst, zone)
Time.mktime(year[, mon[, day[, hour[, min[, sec[,usec]]]]]])
Time.mktime(sec, min, hour, mday, mon,year, wday, yday, isdst, zone)
返回由參數指定的地方時的Time對象.
返回當前時間的Time對象. new與now的區別在於,它會調用initialize.
Time.times((<obsolete>))
以Struct::Tms的形式返回自身進程和其子進程所消耗的用戶/系統CPU時間情況. Struct::Tms是結構體類,它有下列成員.
utime # user time
stime # system time
cutime # user time ofchildren
cstime # system timeof children
采用浮點數的形式來表示時間,其單位為秒.
返回self之后other秒鍾的那個時間.
若other是Time對象的話,就以Float形式返回這二者間的時間差,單位是秒. 若other是數值時, 就返回self之前other秒鍾的那個時間.
時間的比較. other必需是Time對象或數值.若是數值的話, 就把它當做自起算時間以來經過的秒數,然后進行比較.
將時間變為asctime形式的字符串. 但不包含末尾的 \n .
若self的時區是協調世界時的話,就返回真.
新生成並返回一個時區設為協調世界時的Time對象.
新生成並返回一個時區設為地方時的Time對象.
將時區設為協調世界時.返回self.
調用該方法之后, 將以協調世界時的方式來處理時間變換的問題. 若想顯示協調世界時的話,可以這樣.
將時區設為地方時(默認). 返回self.
調用該方法之后, 將以協調地方時的方式來處理時間變換的問題.
按照format字符串的模式,將時間變為字符串,並返回結果. 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: 表示周的數字.以第一個星期天作為第一周的開始(00-53)
%W: 表示周的數字.以第一個星期一作為第一周的開始(00-53)
%w: 表示星期幾的數字. 星期天是0(0-6)
%X: 時刻
%x: 日期
%Y: 表示公歷年份的數字
%y: 公歷年份的后兩位數字(00-99)
%Z: 時區trap
%%: %本身
16、sec、min、hour、mday、day (mday 的別名)、mon、month (mon 的別名)
17、year、wday、yday、isdst、dst? (isdst 的別名)、zone
返回時間的要素.
hour, min, sec: 以整數形式返回時、分、秒.
year, month(mon), day(mday): 以整數形式返回年、月、日.
wday: 以0(星期日)到6(星期六)之間的整數返回星期幾.
yday: 以整數(1到366)的形式返回某天是一年中的第幾天,以1月1日作為第1天.
isdst(dst?): 若為夏令時就返回 true,否則返回 false.
zone: 返回表示時區的字符串.
將self加上1秒鍾以后生成並返回一個Time對象. 時區采用地方時.
例:
t = Time.now
p t
p t.succ
# => Sun Jul 18 01:41:22 JST 2004
Sun Jul 18 01:41:23 JST2004
以一個包括10個元素的數組的形式返回某時間. 數組元素的排列如下.
sec: 秒 (整數 0-60)
min: 分 (整數 0-60)
hour: 時 (整數 1-24)
mday: 日 (整數)
mon: 月 (整數 1-12)
year: 年 (整數 2000鉗=2000)
wday: 星期幾 (整數 0-6)
yday: 一年的第幾天 (整數 1-366)
isdst: 有無夏令時(true/false)
zone: 時區 (字符串)
p Time.now # =>Mon Oct 20 06:02:10 JST 2003
p Time.now.to_a # => [10, 2, 6, 20, 10, 2003, 1, 293,false, "JST"]
以浮點數形式返回自起算時間以來經過的秒數. 它可以表示那些非整秒的情況.
以整數形式返回自起算時間以來經過的秒數.
將某時刻變換為形如date(1)形式的字符串.
例:
p Time.now.to_s # => "Mon Oct 20 06:02:10 JST 2003"
返回某時刻的微秒部分.
24、時間基於時間度量的加減法在實際中會經常被用到:[v3]
rails中,
Time.now + 5.days
Time.now + 1.day
Time.now - 1.year
時間的定位方法
Time.now.beginning_of_week
Time.now.end_of_month
time_start = Time.now.beginning_of_month #當前日期所在月的開始時間
time_end = Time.now.end_of_month #當前日期所在月的終止時間
循環
time_start+1.days
直到time.end