ruby Time類與Date類


  Time類用於表示時間。時間除了表示年月日時分秒的信息外,還包含了表示地域時差的時區(time zone)信息。例如我們可以計算中國當前時間是國際協調時間的幾點

  Date類只用於表示年月日。因此,相對於Time類以秒為單位計算時間,Date類則是以天為單位進行計算的。Date類還可以求下個月的同一天,本月末等日期

  • Time

    puts Time.new #=> 2017-07-26 22:41:42 +0800
    puts Time.now #=> 2017-07-26 22:41:42 +0800
    
    t = Time.now
    puts t
    puts t.year #=> 2017年
    puts t.month  #=> 7月
    puts t.day #=> 26日
    puts t.hour #=> 22時
    puts t.min #=> 44分
    puts t.sec #=> 7秒
    puts t.usec #=> 524674毫秒
    puts t.to_i #=> 1501080502從1970年1月1日到當前時間的秒數
    puts t.wday #=> 3一周當中的第幾天
    puts t.mday #=> 26一個月當中的第幾天
    puts t.yday #=> 207一年當中的第幾天
    puts t.zone #=> 中國標准時間 時區
    puts t.utc #=> 2017-07-26 15:10:07 UTC 轉換為UTC時間
    puts t.localtime #=> 2017-07-26 23:11:54 +0800 轉換為本地時間
    #根據指定時間獲取事件對象
    t = Time.mktime(2013, 3, 28, 2, 32, 12)
    puts t #=> 2013-03-28 02:32:12 +0800
    
    #Time類計算
    t1 = Time.now
    sleep 10
    t2 = Time.now
    puts t1<t2 #=> true
    puts t2-t1  #=> 10.000197
    puts t2, t2+24*60*60
    
    #時間格式
    t = Time.now
    puts t.strftime('%Y-%m-%d %H:%M:%S %z') #=> 2018-05-10 02:14:08 +0800
    puts t.to_s #=> 等價於'%Y-%m-%d %H:%M:%S %z'
    
    
    require 'time'
    #轉換為電子郵件頭部的Date,需要導入time類
    t = Time.now
    puts t.rfc2822 #=> Wed, 26 Jul 2017 23:06:59 +0800
    
    #轉換為ISO國際標准時間的時間格式的字符串
    t = Time.now
    puts t.iso8601  #=> 2017-07-26T23:08:54+08:00
    
    #字符串時間轉換
    puts Time.parse('Wed, 26 Jul 2017 23:06:59 +0800') #=> 2017-07-26 23:06:59 +0800
    puts Time.parse('2013/3/21 12:45:56') #=> 2013-03-21 12:45:56 +0800

     

  • Date

    require 'date'
    
    d = Date.today
    puts d #=> 2017-07-26 當前日期
    puts d.year #=> 2017 年
    puts d.month #=>7 月
    puts d.day #=>26 日
    puts d.wday #=> 3 一周的第幾天
    puts d.mday #=> 26 一個月中的第幾天
    puts d.yday #=> 207 一年中的第幾天
    
    #指定日期生成Date對象
    d = Date.new(2013, 3, 30)
    puts d #=> 2013-03-30
    
    #日期運算
    d1 = Date.new(2013, 1, 1)
    d2 = Date.new(2013, 1, 4)
    puts d2 - d1 #=> 3/test.text (3天的意思)
    
    d = Date.today
    #+,-按天數計算
    puts d #=> 2017-07-26
    puts d + 1 #=> 2017-07-27
    puts d + 100 #=> 2017-11-03
    puts d - 1 #=> 2017-07-25
    puts d - 100 #=> 2017-04-17
    
    d = Date.today
    #>>,<<按月數計算
    puts d #=> 2017-07-26
    puts d >> 1 #=> 2017-08-26
    puts d >> 100 #=> 2025-11-26
    puts d << 1 #=> 2017-06-26
    puts d << 100 #=> 2009-03-26
    
    #日期格式
    t = Date.today
    puts t.strftime('%Y/%m/%d %H:%M:%S') #=> 2017/07/26 00:00:00
    puts t.strftime('%a %b %d %H:%M:%S %Z %Y') #=> Wed Jul 26 00:00:00 +00:00 2017
    puts t #=> 2017-07-26
    
    #字符串轉換為日期
    puts Date.parse('Wed Jul 26 00:00:00 +00:00 2017') #=> 2017-07-26

     

    # 時間日期相互轉換
    Time.new.to_date
    Date.today.to_time
    

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM