十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。
Ruby对时间的处理函数
上一篇 /
下一篇 2011-06-18 08:16:23
/ 个人分类:ruby
Ruby对时间的处理函数
1gl*e km;j;A0
?g3b*B
u*w01.当前时间51Testing软件测试网_7}/ZL-G*h8o8z
t = Time.new
N/Ky|#`0 或
0K&@8mWEXzK0 t = Time.now51Testing软件测试网(DcT.vl
_/`V2H.P2MZ02.生成指定时间
/JmN2G!@ wr0 t1 = Time.mktime(2001) # January 1, 2001 at 0:00:0051Testing软件测试网xQEs&yJR M%Bq2N
t2 = Time.mktime(2001,3)51Testing软件测试网rm:`u0cfU
t3 = Time.mktime(2001,3,15)
)g3B\d)~,z?0 t4 = Time.mktime(2001,3,15,21)51Testing软件测试网U#b+z2|Z%h.h
U
t5 = Time.mktime(2001,3,15,21,30)51Testing软件测试网m#Hy
v)v
t6 = Time.mktime(2001,3,15,21,30,15) # March 15, 2001 9:30:15 pm51Testing软件测试网+O%X @6N{Q!U|C
mktime使用当前时区
5Q&ha^R M-E?5h!l3hU8Z051Testing软件测试网9@rl5nY(j!f{%ku9h
Time.gm(同义方法是Time.utc)方法基本上和上面的mktime用法相同,但它使用的是GMT或UTC时区
#[3hg O'Q%p/Y1F0t8 = Time.gm(2001,3,15,21,30,15)
9g4e2HC
b4m1@0t9 = Time.utc(2001,3,15,21,30,15)51Testing软件测试网/D(E `7?R&Rij5W-W!r
CL S+br/i8P1k03.时间数组化
0Bes{;X1{~4o&`4o0to_a可以把时间相关一信息转化成一个数组,数组中存放的信息格式如下:
IK,_7OG _0seconds,
:O2]7_OZ0minutes,51Testing软件测试网;m*j.ooe
hours,51Testing软件测试网dN2cAV D
day,51Testing软件测试网G/]-J9xHeVG
month,
f|!g0l9vz BY/Y0year,
e2ZFFB-pc0day of week (0..6),51Testing软件测试网e&PXDK*L
day of year (1..366),51Testing软件测试网 ETVO#u(Y
daylight saving (true or false),51Testing软件测试网.N3C;i0e-?Z%erq
and time zone (as a string)
IorEr$~0
%@OtV
T r6a0示例:51Testing软件测试网ai/X1`)pd,XV
t0 = Time.local(0,15,3,20,11,1979,2,324,false,"GMT-8:00")51Testing软件测试网cQ$}"Hh9z6|I$Sr
t1 = Time.gm(*Time.now.to_a)
0Mx+z*t"UjDu051Testing软件测试网!oh-In:^8n
4.使用数字秒数创建时间,其中这个整数代表从1970年开始到当前的秒数,
pr/TIUFU/f8R:Z#qnnx0epoch = Time.at(0) # Find the epoch (1 Jan 1970 GMT)
0[HlG6n9]"{4B0newmil = Time.at(978307200) # Happy New Millennium! (1 Jan 2001)
-T8b-b&`5\M|]051Testing软件测试网G3E#Bv)Kj
now = Time.now # 16 Nov 2000 17:24:2851Testing软件测试网n1xp&f ge
sec = now.to_i # 97442426851Testing软件测试网N$a'yZ,F0Z
x-w#ca%W0Fh05. 日期的格式化
o)Xg.SmyJ0获取本日是星期几:
!]~z*q'k~|x4a0now = Time.now + 151Testing软件测试网yI
f0jE!V![O
day_num = now.wday #3
7V8@+G?D&f @0day_abbr = now.strftime("%a") #Wed
2HL
Bs(?)n.{(i0day_full = now.strftime("%A") #Wednesday
ZR$V(L:^ y051Testing软件测试网%iOrb4J0[3_
sW|
获取一年中本日所在的周:51Testing软件测试网
@
~NUT
t1 = Time.local(2002,5,1)
,K0vyZXA.B!r01 = Date.new(2002,5,1)
P*J \_qs0
.c3t@6]b7F0week1a = t1.strftime("%U").to_i # 1751Testing软件测试网1C4n9v#ejH,`
week1b = t1.strftime("%W").to_i # 1751Testing软件测试网aw1w${1rZI3X3Ig%EC xl
week1c = d1.cweek # 1851Testing软件测试网p:S"^r6W4C+m#pIoK
51Testing软件测试网T-c2pO,KZ7L
获取当前时区:
e1zo9C
AQ7?*p,h0z1 = Time.gm(2000,11,10,22,5,0).zone # "UTC"51Testing软件测试网L(j
S4J9J;X
z2 = Time.local(2000,11,10,22,5,0).zone # "中国标准时间"51Testing软件测试网Wn+\5Wi{$n
\
hErh~p0格式化时间51Testing软件测试网h&wV'LX
a'P"m
t = Time.now51Testing软件测试网Ov,["~ u/y1nYj
puts t.strftime("%H:%M:%S") # 22:07:4551Testing软件测试网,eGpQ
{c2r
51Testing软件测试网 lf3?[i[
puts t.strftime("%H:%M") # 22:07
B:y.oe L ^.mo0puts (t + 30).strftime("%H:%M") # 22:08 (加了30秒)51Testing软件测试网\Rx R7KL.xa
51Testing软件测试网t3n3~2R i
puts t.strftime("%I:%M %p") # 10:07 PM51Testing软件测试网"fHUL,aU/yo
51Testing软件测试网%}L~n5T1]ra
strftime方法中可用的格式化符号:51Testing软件测试网'f0Md0@W{
=====================================================
4a3h2?|9B`a o/l0%a 星期的缩写,如Wed51Testing软件测试网x9I%e{y\
%A 星期的全称,如Wednesday
4?.Pv`V d @-mS0%U 本星期在全年中所属的周数51Testing软件测试网
~.} G
v P P
%W
y1p
P"n+Q#lT0%H 小时(24小时制)
Pq{%R;M@L(g^0%M 分钟
f1h|VX cj Y0%S 秒51Testing软件测试网.I4a&rDt
%I 小时(12小时制)51Testing软件测试网#r~+n
Ixl3i)[t
%p PM 或 AM
^V0L? ` Jg051Testing软件测试网0A4Xw5FwR+o1@S+@T
%b 月份的缩写,如 Jan51Testing软件测试网DT0y:d&b7u/z
%B 月份的全称,如 January
jt {0g9MKz~2x2Pu0%c 本地日期和时间,如 06/14/07 16:43:49
1U:Dd6`
O%Q$`.z)_.K:d0%d 日期 (1..31)
k#ZMCi0%j 本日在一年中所属的天 (1..366)51Testing软件测试网.s3bq-i
g
LI\,z/Z
%m 月份 (1..12)
Ojz NX_m$M0%w 星期的数字形式 (0..6)51Testing软件测试网]Y k$@Dnc
%x 本地日期,如 06/14/0751Testing软件测试网8K1I
{VY
%Y 本地时间,如 16:43:4951Testing软件测试网N.tUF\9V C
%y 2位的年份表示,如07
7Gm vqc\3}"x0%Y 4位的年份表示,如2007
+Au7`|/x7YR9r0%Z 时区名,如"中国标准时间"51Testing软件测试网:e5i:?u,Y;Y w
%% 字面符号%
收藏
举报
TAG:
时间函数
Ruby
ruby