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

ruby Time类与Date类的更多相关文章

  1. Math类、Random类、System类、BigInteger类、BigDecimal类、Date类、SimpleDateFormat、Calendar类

    Math类* A:Math类概述 * Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. * B:成员方法 * public static int abs(int a)  ...

  2. Ruby Time类和Date类

    Time类 更新: 2017/06/23 更新了Data/Time在model模式下的便利方法 更新: 2018/10/12 修改了%Y相关描述防止误解  年月日时分秒,时区    生成  获取当前时 ...

  3. 14-03 java BigInteger类,BigDecimal类,Date类,DateFormat类,Calendar类

    BigInteger类 发 package cn.itcast_01; import java.math.BigInteger; /* * BigInteger:可以让超过Integer范围内的数据进 ...

  4. 正则表达式、Calendar类、SimpleDateFormat类、Date类、BigDecimal类、BigInteger类、System类、Random类、Math类(Java基础知识十四)

    1.正则表达式的概述和简单使用 * A:正则表达式(一个字符串,是规则)     * 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. * B: ...

  5. 处理时间的类 —— System类、Date类 、SimpleDateFormat类 与 Calendar类

    在我们以往的编程中,就有过通过运行前和运行后时间差来判断时间复杂度的例子,再扯得远一点,我们在C语言中制造随机数的操作,也要用到有关时间的函数.而且,在我们未来的编程中,也会时不时要用到能够读取当前时 ...

  6. 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类

    日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 ​ Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...

  7. Object类、Date类、Calendar类、System类、StringBuilder类和基本类型包装类

    一.Object类--toString方法 1.普通类重写toString方法,不然打印出来是存在栈内存的对象引用名称的堆内存中该对象的地址值: 2.equals方法: String比较equals是 ...

  8. C++实现日期类(Date类)

    #include<iostream>using namespace std;class Date{public:    Date(int year = 1900, int month = ...

  9. String类与Date类的转换

    public class DateTest { public static void main(String[] args) throws ParseException { Date date = n ...

随机推荐

  1. constructor()方法

    在做微信小程序的时候,需要对传输的数据进行加密,大牛给我介绍constructor()方法,不是很懂这个但是用了一次,今天来用自己的想法来理解这个方法 ———————————————————————— ...

  2. DataBase Migration 使用笔记

    Add-Migration 新建数据库迁移版本 Update-Database -Verbose 更新到数据库(-Verbose 显示详细信息) Update-Database –TargetMigr ...

  3. 使用pm2自动化部署node项目

    1.pm2简介 pm2(process manager)是一个进程管理工具,维护一个进程列表,可以用它来管理你的node进程,负责所有正在运行的进程,并查看node进程的状态,也支持性能监控,负载均衡 ...

  4. 【转载】SSH login without password 免密登陆

    Your aim You want to use Linux and OpenSSH to automate your tasks. Therefore you need an automatic l ...

  5. TCP的建立和关闭

    一.TCP头信息 简单的至少应该知道,源端口,目的端口,序号,确认号,标志位,校验和 二.TCP的建立 1.客户端将SYN标志位置1,同时生成随机的序号,确认号是0. 2.服务器接收到SYN,知道有人 ...

  6. HDU 5675 智慧数

    题意:给一个n ,能否找到正整数x,y使得 x^2 -y^2 = n: 分析:打表可以找出规律,3,5,7,9....,8,12,16,20..... 和奇数,4的倍数有关. 数学证明:

  7. 【[NOI2018]你的名字】

    题目 可能是一个乱搞做法,同时也跪求有人能帮我分析一下复杂度 还是先来看比较简单的\(68pts\),也就是\(l=1,r=|S|\)的情况 我们可以直接把\(S\)串和所有的\(T\)串一起建一个广 ...

  8. HDU 5536 Chip Factory 【01字典树删除】

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5536 Chip Factory Time Limit: 18000/9000 MS (Java/Ot ...

  9. c#运用this.invoke() 在多线程时对UI进行修改

    什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源.而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈 ...

  10. Mac下更新Vim到最新版本

    目前,Mac内置的Vim是7.3版本的,而且还缺少很多功能,下面介绍如何通过源码安装更新最新版本的Vim,同时保留系统内置的Vim. # 下载Vim源代码 git clone https://gith ...