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. 【转载】#445 - Differences Between an Interface and an Abstract Class

    An interface provides a list of members, without an implementation, that a class can choose to imple ...

  2. datatable Left and right fixed columns

    $(document).ready(function() { var table = $('#example').DataTable( { scrollY: "300px", sc ...

  3. [19/03/22-星期五] 异常(Exception)(二)_捕获异常

    一.概念 捕获异常是通过3个关键词来实现的:try-catch-finally.用try来执行一段程序,如果出现异常,系统抛出一个异常,可以通过它的类型来捕捉(catch)并处理它, 最后一步是通过f ...

  4. c#主窗体以及副窗体弹出

    在program.cs中,Form1的位置就是主窗体的位置(主窗体特征:关闭窗体应用程序结束) 弹出副窗口(点击按钮弹出窗口) Close为关闭窗口(关闭对应对象,需要先自己new一个) this.C ...

  5. 【洛谷P3627】[APIO2009]抢掠计划

    抢掠计划 题目链接 比较水的缩点模板题,Tarjan缩点,重新建图,记录联通块的钱数.是否有酒吧 DAG上记忆化搜索即可 #include<iostream> #include<cs ...

  6. Spring ApplicationListener配合-D实现参数初始化

    ApplicationListener是SpringBoot的监听器,提供了四种事件: ApplicationStartedEvent :spring boot启动开始时执行的事件 Applicati ...

  7. iOS 清除xcode缓存和生成文件

    方法1 按快捷键 shift+command+G 或者 Finder图标点击右键选 前往文件夹... 调出前往文件夹框 在里面输入如下 /Users/(自己电脑名字)/Library/Develope ...

  8. 火狐 SSL 收到了一个弱临时 Diffie-Hellman 密钥

    火狐 SSL 收到了一个弱临时 Diffie-Hellman 密钥   最近在用FireFox 调试时使用Https,连接 https网址 时发生错误. 在服务器密钥交换握手信息中 SSL 收到了一个 ...

  9. Mac 使用问题

    Mac 使用 Mac改变系统截图存储位置 鼠标在屏幕中间上下滚动时,有时反应不灵敏: 看看偏好设置-> 鼠标 -> 跟踪速度或者手势部分是否有哪里设置不当: 考虑重新开启鼠标鼠标底部有一个 ...

  10. Redis分布式锁的正确实现方式(Java版)

    前言 分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁.本篇博客将介绍第二种方式,基于Redis实现分布式锁.虽然网上已经有各种介 ...