在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Ruby/ Ruby日期時(shí)間
Ruby for循環(huán)
Ruby教程
Ruby文件I/O
Ruby迭代器
Ruby哈希
Ruby日期時(shí)間
Ruby類和對(duì)象
Ruby快速入門(30分鐘)
Ruby redo/retry語句
Ruby模塊
Ruby解析XML(REXML)
Ruby if-else語句
Ruby的功能特點(diǎn)
Ruby break/next語句
Ruby方法
Ruby是什么?
Ruby與Python比較
Ruby Case語句
Ruby目錄
Ruby范圍
Ruby異常
Ruby套接字編程(Socket)
Ruby字符串
Ruby安裝配置
Ruby運(yùn)算符
Ruby while/do...while循環(huán)語句
Ruby第一個(gè)HelloWorld程序
Ruby until循環(huán)語句
Ruby注釋
Ruby塊
Ruby數(shù)據(jù)類型
Ruby面向?qū)ο?/span>
Ruby正則表達(dá)式
Ruby數(shù)組
Ruby變量
Ruby多線程編程

Ruby日期時(shí)間

Ruby文檔中主要有三個(gè)與日期和時(shí)間相關(guān)的類,它們分別如下所示 -

  • Date
  • DateTime
  • Time

日期(Date)

Ruby日期處理主要提供了兩個(gè)類:DateDateTime。要了解日期的概念,首先我們需要了解下面一些術(shù)語。

日歷日期:日歷日期是一年內(nèi)的一個(gè)日歷月內(nèi)的特定日期。
有序日期:序數(shù)日期是由其序號(hào)確定的日歷年的特定日期。
周日期:周日期是按日歷周和日數(shù)確定的日期。一年的第一個(gè)日歷周是包括那一年的第一個(gè)星期四。
儒略日數(shù):儒略日數(shù)是從中午經(jīng)過公元前4713 1月1日的天數(shù)。
修改后的朱蓮日數(shù):修改后的朱利安日數(shù)是自1858年11月17日午夜過后的一天。

Date對(duì)象使用::new, ::parse, ::today, ::jd::strptime等創(chuàng)建。所有日期對(duì)象都是不可變的,因此它們不能自己修改。

示例:

#!/usr/bin/ruby 
# file : datetime-example.rb
require 'date'   

puts Date.new(2017,9,3)            
puts Date.jd(2451877)               
puts Date.ordinal(2017,9)         
puts Date.commercial(2017,5,6)     
puts Date.parse('2017-08-03')    
puts Date.strptime('03-02-2017', '%d-%m-%Y')                           
puts Time.new(2017,11,8).to_date

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby datetime-example.rb
2017-09-03
2000-11-28
2017-01-09
2017-02-04
2017-08-03
2017-02-03
2017-11-08

F:\worksp\ruby>

Date類對(duì)象具有以下示例所示的各種方法。

示例:

#!/usr/bin/ruby 
# file : datetime-method.rb
require 'date'   

d = Date.parse('4th Mar 2019')   

puts d.year                        
puts d.mon                         
puts d.mday                        
puts  d.wday                        
puts d += 1                        
puts d.strftime('%a %d %b %Y')

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby datetime-method.rb
2019
3
4
1
2019-03-05
Tue 05 Mar 2019

F:\worksp\ruby>

日期時(shí)間(DateTime)

Ruby DateTimeDate的子類。 它可以輕松處理日期,時(shí)間,分鐘,秒和偏移量。

DateTime對(duì)象使用DateTime.new,DateTime.ordinal,DateTime.parse,DateTime.jd,DateTime.commercial,DateTime.now等來創(chuàng)建。

示例:

#!/usr/bin/ruby 
# file : datetime-new.rb
require 'date'   

puts DateTime.new(2019,3,4,5,6,7)

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby datetime-new.rb
2019-03-04T05:06:07+00:00

F:\worksp\ruby>

日,分,秒或小時(shí)的最后一個(gè)元素可以是小數(shù)。DateTime對(duì)象具有多種方法,如下例所示。

示例:

#!/usr/bin/ruby 
# file : datetime-allmethod.rb

require 'date'   

d = DateTime.parse('4th Mar 2019 02:37:05+05:40')   

puts d.hour                 
puts d.min                 
puts d.sec                  
puts d.offset               
puts d.zone                 
puts d += Rational('1.0')   

puts d = d.new_offset('+05:00')   

puts d.strftime('%I:%M:%S %p')   

puts d > DateTime.new(2000)

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby datetime-allmethod.rb
2
37
5
17/72
+05:40
2019-03-05T02:37:05+05:40
2019-03-05T01:57:05+05:00
01:57:05 AM
true

F:\worksp\ruby>

時(shí)間(Time)

Time類是日期和時(shí)間的抽象。 它內(nèi)部存儲(chǔ)為自大紀(jì)元時(shí)間以來的秒數(shù)。Time類對(duì)待格林尼治標(biāo)準(zhǔn)時(shí)間(格林尼治標(biāo)準(zhǔn)時(shí)間)和UTC(協(xié)調(diào)世界時(shí)))等效。
時(shí)間可能看起來相等,但是比較起來可能會(huì)有所不同,因?yàn)樗械臅r(shí)間都可能有分?jǐn)?shù)。
時(shí)間實(shí)現(xiàn)使用帶符號(hào)的63位整數(shù)BignumRational。使用整數(shù)時(shí),時(shí)間處理較慢。

創(chuàng)建新的時(shí)間實(shí)例

可以使用::new創(chuàng)建新的Time實(shí)例。這可使用獲取當(dāng)前系統(tǒng)的時(shí)間。 部分時(shí)間,如年,月,日,小時(shí),分鐘等也可以通過這種方法獲得。

創(chuàng)建新的時(shí)間實(shí)例時(shí),您需要指定傳遞至少年份。 如果只有通過了指定年份,那么時(shí)間將默認(rèn)為當(dāng)前系統(tǒng)時(shí)區(qū)的那個(gè)年份的1月1日 00:00:00開始。

示例:

#!/usr/bin/ruby 
# file : datetime-allmethod.rb

require 'date'   
puts Time.new          
puts Time.new(2018, 3)       
puts Time.new(2018, 3, 4)   
puts Time.new(2019, 3, 4, 6, 5, 5, "+05:00")

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby date-example.rb
2017-05-08 23:31:03 +0800
2018-03-01 00:00:00 +0800
2018-03-04 00:00:00 +0800
2019-03-04 06:05:05 +0500

F:\worksp\ruby>

Time對(duì)象和 gm, utc 以及 local 方法

如果不使用當(dāng)前的系統(tǒng)設(shè)置,也可以使用gm, utc 以及 local 這些方法。

示例:

puts Time.local(2018, 2, 5)    

puts Time.local(2019, 2, 5, 4, 30)     

puts Time.utc(2018, 2, 5, 4, 30)    

puts Time.gm(2018, 2, 5, 4, 30, 36)

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby time-methods.rb
2018-02-05 00:00:00 +0800
2019-02-05 04:30:00 +0800
2018-02-05 04:30:00 UTC
2018-02-05 04:30:36 UTC

F:\worksp\ruby>

使用時(shí)間的實(shí)例

創(chuàng)建時(shí)間實(shí)例后,我們可以按照以下方式工作。

示例:

#!/usr/bin/ruby 
# file : time-instance.rb

t = Time.new(1991, 07, 5, 9, 15, 33, "+09:00")   
puts t.friday? #=> false   
puts t.year #=> 1993   
puts t.dst? #=> false   
puts t + (60*60*24*365) #=> 1994-02-24 12:00:00 +0900   
puts t.to_i #=> 730522800   

t1 = Time.new(2019)   
t2 = Time.new(2017)   

puts t1 == t2 #=> false   
puts t1 == t1 #=> true   
puts t1 <  t2 #=> true   
puts t1 >  t2 #=> false   

puts Time.new(2010,10,31).between?(t1, t2) #=> true

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby time-instance.rb
true
1991
false
1992-07-04 09:15:33 +0900
678672933
false
true
false
true
false

F:\worksp\ruby>

時(shí)區(qū)和夏令時(shí)間

Time對(duì)象可用于獲取與時(shí)區(qū)相關(guān)的所有信息。將顯示系統(tǒng)的當(dāng)前時(shí)間的所有信息。

示例:

#!/usr/bin/ruby 
# file : time-instance.rb

time = Time.new   

puts time.zone         
puts time.utc_offset   
puts time.zone        
puts time.isdst       
puts time.utc?      
puts time.localtime    
puts time.gmtime      
puts time.getlocal    
puts time.getutc

執(zhí)行上面代碼,得到以下結(jié)果 -

F:\worksp\ruby>ruby timezones-daylight.rb
中國標(biāo)準(zhǔn)時(shí)間
28800
中國標(biāo)準(zhǔn)時(shí)間
false
false
2018-05-08 23:43:42 +0800
2018-05-08 15:43:42 UTC
2018-05-08 23:43:42 +0800
2018-05-08 15:43:42 UTC

F:\worksp\ruby>

上一篇:Ruby Case語句下一篇:Ruby文件I/O