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

原文地址:https://www.cnblogs.com/wf0117/p/9017640.html

时间: 2024-10-11 19:11:35

ruby Time类与Date类的相关文章

Calendar类与Date类的使用

从读计算机专业以来一直都没写过博客,以后坚持写写博客,才疏学浅,还请大家多多指教!!!! 首先,讲解Date类的使用: Date类,顾名思义是讲解日期的,从JDK1.1开始到至今已经过去很久了,由于种种缺陷转而使用Calendar类较多,但是仍然有值得一谈的地方. Date类的构造方法为6个,但是其中有4个已经过时,不推荐使用.这里只讲解其中两个: 1. public Date(){ this(system.getCurrentTimeMillis())    //获取当前时间戳 } 2.pub

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

在我们以往的编程中,就有过通过运行前和运行后时间差来判断时间复杂度的例子,再扯得远一点,我们在C语言中制造随机数的操作,也要用到有关时间的函数.而且,在我们未来的编程中,也会时不时要用到能够读取当前时间的方法,所以,本篇博文所讲解的类,其实还是挺常用的,所以本人专门写一篇博文来为同学们展示下这个类的常用方法的用法 System类: 概述: System 类包含一些有用的类字段和方法.它不能被实例化. 说真的,System类与时间相关的主要原因就是它的一个方法,那么,现在,本人来展示下这个类的常用

java 静态导入、System类、Date类、Runtime类、Calendar类、Collections类中的shuffle方法、Math类

/* JDK1.5版本新特性(续):静态导入 注意:当类名重名时,需要指定具体的包名: 当方法名重名时,需要指定具体的类名. */ import java.util.*; import static java.util.Arrays.*;//导入Arrays工具类中的所有静态成员. import static java.lang.System.*;//导入了System类中所有的静态成员,注意System类中的成员都是静态的. class StaticImport { public static

String类与Date类的转换

public class DateTest { public static void main(String[] args) throws ParseException { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS"); String date1 = sdf.format(date);//通过SimpleDateFormat把date类型转换为Stri

java类Date类概述及其方法

1.Date类概述 类Date表示特定的瞬间,精确到毫秒 2.构造方法 public Date() public Date(long date) 3.成员方法 public long getTime() public void setTime(long time) package com; import java.util.Date; /**  * Date类概述  *  Date类表示特定的瞬间,精确到毫秒  *   * 构造方法  *  public Date()  *  public Da

Math类++Date类

package day06; /***** * Math类的演示 * Math类: * 1,Math类是final的 * 2,Math的构造方法是private的(不能手工new) * 3,Math提供的方法是静态的(全部都可以调用) * 常用的方法: * abs:绝对值 * sqrt:平方根 * pow(double a ,double b) a的b次幂 * log    自然对数 * exp    e为底的指数 * max(double a ,double b)    两个数求最大值 * m

使用date类和format类对系统当前时间进行格式化显示

一:Date------------String 代码1:(代码二对显示出来的时间格式进行优化) package DateDemo; import java.text.SimpleDateFormat; import java.util.Date; // 需求:将现在系统的时间打印出来 // 需要的类:Date 类:生成当前系统时间 // SimpleDateFormat 类:对生成的系统时间进行格式化 // 构造方法摘要 SimpleDateFormat() public class Date

前端(十四)—— JavaScript基础:Number、Date类、字符串、数组、Math类、正则

JS常用类:Number类.Date类.Math类.字符串.数组.正则 一.Number 1.常用数字 整数:10 小数:3.14 科学计数法:1e5 | 1e-5 正负无穷:Infinity | -Infinity 2.常用进制 二进制:0b1010 以0b开头 八进制:012 以0开头 十进制:10 十六进制:0xA 以0x开头 3.NaN 非数字类型,通过isNaN()进行判断 4.常用常量 最大值:MAX_VALUE(1.7976931348623157e+308) 最小值:MIN_VA

Java基础之Date类

Date类表示特定的瞬间,精确到毫秒. 有2种方法可以创建Date对象(这里不考虑已过时的构造函数) 1.public Date()--分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒). 1 @Test 2 public void test1() { 3 Date date = new Date(); 4 System.out.println(date); 5 } Sun Oct 23 22:39:14 CST 2016 2.public Date(long date)--根