• 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
      
  • 相关阅读:
    java10 var
    java lambda,方法引用
    Java集合总结
    Oracle/Sun JDK与OpenJDK的区别和联系
    IO基本知识
    字符串反转2单词内部不进行转换
    反转String 1
    java 左移<<&>>右移&>>无符号右移
    反射
    equals方法与hashcode方法
  • 原文地址:https://www.cnblogs.com/wf0117/p/9017640.html
Copyright © 2020-2023  润新知