本文簡要介紹ruby語言中 Time類
的用法。
Time
是日期和時間的抽象。 Time
在內部存儲為自 Epoch
1970-01-01 00:00:00 UTC 以來的秒數。
Time
類將 GMT(格林威治平均值 Time
)和 UTC(協調通用 Time
)視為等效。 GMT 是引用這些基線時間的較舊方式,但在 POSIX 係統上的調用名稱中仍然存在。
注意:時間對象使用係統時鍾上可用的分辨率。
所有時間都可能有亞秒級。相互比較時間時請注意這一事實 - 顯示時明顯相等的時間在比較時可能不同。 (從 Ruby 2.7.0 開始, Time#inspect
顯示亞秒,但 Time#to_s
仍然不顯示亞秒。)
例子
所有這些示例都是使用 GMT-5 的 EST 時區完成的。
創建新的時間實例
您可以使用 Time.new
創建 Time
的新實例。這將使用當前係統時間。 Time.now
是它的別名。您還可以將部分時間傳遞給 Time.new
,例如年、月、分鍾等。當您想以這種方式構建時間時,您必須至少傳遞一年。如果您通過這一年沒有別的時間將默認為該年 1 月 1 日的 00:00:00 與當前係統時區。這裏有些例子:
Time.new(2002) #=> 2002-01-01 00:00:00 -0500
Time.new(2002, 10) #=> 2002-10-01 00:00:00 -0500
Time.new(2002, 10, 31) #=> 2002-10-31 00:00:00 -0500
您可以傳遞 UTC 偏移量:
Time.new(2002, 10, 31, 2, 2, 2, "+02:00") #=> 2002-10-31 02:02:02 +0200
或時區對象:
zone = timezone("Europe/Athens") # Eastern European Time, UTC+2
Time.new(2002, 10, 31, 2, 2, 2, zone) #=> 2002-10-31 02:02:02 +0200
您還可以使用 Time.local
和 Time.utc
來推斷本地和 UTC 時區,而不是使用當前係統設置。
您還可以使用 Time.at
創建一個新時間,該時間需要自 Unix Epoch 以來的秒數(亞秒)。
Time.at(628232400) #=> 1989-11-28 00:00:00 -0500
使用時間實例
一旦你有了 Time
的實例,你就可以用它做很多事情。下麵是一些例子。對於以下所有示例,我們將假設您已完成以下操作:
t = Time.new(1993, 02, 24, 12, 0, 0, "+09:00")
那是星期一嗎?
t.monday? #=> false
那又是哪一年?
t.year #=> 1993
當時是夏令時嗎?
t.dst? #=> false
一年後是什麽日子?
t + (60*60*24*365) #=> 1994-02-24 12:00:00 +0900
自 Unix 紀元以來有多少秒?
t.to_i #=> 730522800
您還可以執行標準函數,例如比較兩次。
t1 = Time.new(2010)
t2 = Time.new(2011)
t1 == t2 #=> false
t1 == t1 #=> true
t1 < t2 #=> true
t1 > t2 #=> false
Time.new(2010,10,31).between?(t1, t2) #=> true
相關用法
- Ruby Time tv_sec用法及代碼示例
- Ruby Time usec用法及代碼示例
- Ruby Time yday()用法及代碼示例
- Ruby Time succ()用法及代碼示例
- Ruby Time mon()用法及代碼示例
- Ruby Time.gmtime用法及代碼示例
- Ruby Time iso8601用法及代碼示例
- Ruby Time.at用法及代碼示例
- Ruby Time.utc_offset用法及代碼示例
- Ruby Time.isdst用法及代碼示例
- Ruby Time.time + numeric用法及代碼示例
- Ruby Time wednesday?用法及代碼示例
- Ruby Time.wednesday?用法及代碼示例
- Ruby Time asctime()用法及代碼示例
- Ruby Time.localtime用法及代碼示例
- Ruby Time hour用法及代碼示例
- Ruby Time subsec()用法及代碼示例
- Ruby Time xmlschema用法及代碼示例
- Ruby Time.yday用法及代碼示例
- Ruby Time.time <=>用法及代碼示例
- Ruby Time utc_offset用法及代碼示例
- Ruby Time now()用法及代碼示例
- Ruby Time to_r用法及代碼示例
- Ruby Time to_s用法及代碼示例
- Ruby Time to_f用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Time類。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。