`

Ruby对时间的处理函数

    博客分类:
  • ruby
阅读更多
Ruby对时间的处理函数

1.当前时间
  t = Time.new
 或
 t = Time.now

2.生成指定时间
  t1 = Time.mktime(2001)                # January 1, 2001 at 0:00:00
 t2 = Time.mktime(2001,3)
 t3 = Time.mktime(2001,3,15)
 t4 = Time.mktime(2001,3,15,21)
 t5 = Time.mktime(2001,3,15,21,30)
 t6 = Time.mktime(2001,3,15,21,30,15) # March 15, 2001 9:30:15 pm
mktime使用当前时区

Time.gm(同义方法是Time.utc)方法基本上和上面的mktime用法相同,但它使用的是GMT或UTC时区
t8 = Time.gm(2001,3,15,21,30,15)  
t9 = Time.utc(2001,3,15,21,30,15)

3.时间数组化
to_a可以把时间相关一信息转化成一个数组,数组中存放的信息格式如下:
seconds,
minutes,
hours,
day,
month,
year,
day of week (0..6),
day of year (1..366),
daylight saving (true or false),
and time zone (as a string)

示例:
t0 = Time.local(0,15,3,20,11,1979,2,324,false,"GMT-8:00")
t1 = Time.gm(*Time.now.to_a)

4.使用数字秒数创建时间,其中这个整数代表从1970年开始到当前的秒数,
epoch = Time.at(0)          # Find the epoch (1 Jan 1970 GMT)
newmil = Time.at(978307200) # Happy New Millennium! (1 Jan 2001)

now = Time.now              # 16 Nov 2000 17:24:28
sec = now.to_i              # 974424268

5. 日期的格式化
获取本日是星期几:
now = Time.now + 1
day_num = now.wday           #3
day_abbr = now.strftime("%a")   #Wed
day_full = now.strftime("%A")   #Wednesday

获取一年中本日所在的周:
t1 = Time.local(2002,5,1)
1 = Date.new(2002,5,1)

week1a = t1.strftime("%U").to_i   # 17
week1b = t1.strftime("%W").to_i   # 17
week1c = d1.cweek                 # 18

获取当前时区:
z1 = Time.gm(2000,11,10,22,5,0).zone     # "UTC"
z2 = Time.local(2000,11,10,22,5,0).zone # "中国标准时间"

格式化时间
t = Time.now
puts t.strftime("%H:%M:%S")      # 22:07:45

puts t.strftime("%H:%M")         # 22:07
puts (t + 30).strftime("%H:%M") # 22:08 (加了30秒)

puts t.strftime("%I:%M %p")      # 10:07 PM

strftime方法中可用的格式化符号:
=====================================================
%a    星期的缩写,如Wed
%A    星期的全称,如Wednesday
%U    本星期在全年中所属的周数
%W  
%H    小时(24小时制)
%M    分钟
%S    秒
%I    小时(12小时制)
%p    PM 或 AM

%b    月份的缩写,如 Jan
%B    月份的全称,如 January
%c    本地日期和时间,如 06/14/07 16:43:49
%d    日期 (1..31)
%j    本日在一年中所属的天 (1..366)
%m    月份 (1..12)
%w    星期的数字形式 (0..6)
%x    本地日期,如 06/14/07
%Y    本地时间,如 16:43:49
%y    2位的年份表示,如07
%Y    4位的年份表示,如2007
%Z    时区名,如"中国标准时间"
%%    字面符号%
分享到:
评论

相关推荐

    Ruby编程语言

    本书还包含对Ruby平台上丰富的API的详尽介绍,并用带有详尽注释的代码演示了Ruby进行文本处理、数字运算、集合、输入/输出、网络开发和并发编程的功能。  前言1  第1章导言1  1.1漫游RUBY2  1.2体验RUBY11  ...

    Ruby中处理时间的一些基本操作

    /usr/bin/ruby -w time1 = Time.new puts Current Time : + time1.inspect # Time.now is a synonym: time2 = Time.now puts Current Time : + time2.inspect 这将产生以下结果: Current Time : Mon Jun 02 12:02...

    在Ruby中处理日期和时间的教程

    Time 类在 Ruby 中用于表示日期和时间。它是基于操作系统提供的系统日期和时间之上。该类可能无法表示 1970 年之前或者 2038 年之后的日期。 本教程将让您熟悉日期和时间的所有重要的概念。 创建当前的日期和时间 ...

    ruby.fundamental:Ruby示例和参考的基础编程。 它涵盖了线程,SOLID原理,设计模式,数据结构,算法。 阅读书籍。 网站https:github.comkhusnetdinovbetterdocs的仓库

    在许多情况下,这使程序员可以在与手动编写所有代码相同的时间内完成更多工作,或者它为程序提供了更大的灵活性,可以有效地处理新情况而无需重新编译。 或者,更简单地说:元编程是编写在运行时编写代码的代码,以...

    timerizerJS:在 JS 中处理相对时间的库

    一个简洁的小实用程序,用于在 JavaScript 中处理相对时间。 ( 2 ) . days . ago ( ) ; // Sat Jan 03 2015 18:00:00 GMT+0000 (GMT) 整洁的。 我从窃取了名称,它是用 Ruby 编写的,基于 Ruby on Rails 的 ,...

    well-grounded-rubyist-book-notes:我在Jupyter Lab(Ruby内核2.7.0)中实现的“ The Well-Grounded Rubyist”(Black&Leo)的工作笔记。

    类和方法查找method_missing 类和模块设计/命名介绍范围方法访问规则顶级方法有条件的执行循环迭代器和代码块错误处理与异常文字构造函数句法糖爆炸方法和危险转换方式布尔状态和对象...和零比较两个对象检查对象...

    Linux C程序设计大全

    1.3.5 Ruby 1.3.6 PHP 第2章 控制结构 2.1 goto语句 2.1.1 C语言中的无条件跳转 2.1.2 使用goto语句进行出错处理 2.1.3 出错处理的一般模型 2.2 C语言中的分支结构 2.2.1 分支结构的翻译 2.2.2 使用goto语句实现分支...

    计算机视觉+机器学习+OpenCV

    [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 该开发包合集,是笔者花了2天时间,从OpenCV官网...

    solr 企业搜索引擎教程

     函数查询(Function Query)-通过关于一个域的数值或顺序的函数对打分进行影响  性能优化 1.2.4 核心  可插拔的查询句柄(Query Handler)和可扩展的 XML 数据格式  使用唯一键的域能够增强文档唯一性  能够...

    CodeIgniter:php敏捷开发框架web快速开发详解

    1.1.2.2 防止对数据库的攻击:对表单输入的数据进行校验和处理 数据输入可能引发许多问题。因为 HTML 和数据库的限制,数据中总包含特定的符号—举例来说,省略符号和引号—可能导致你的数据库遭到攻击,最终得到你...

    Qt+opencv环境配置

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库...它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

    存储图数据的数据库FlockDB.zip

    基于进入系统的时间,写操作具有幂等性(不管操作多少次结果都不变的性质,比如取绝对值的函数就具有幂等性)和交换性(操作顺序不影响结果,比如加法就具 有交换性)。因为能交换操作顺序而不影响最终结果,所以我们...

    Programming_In_Lua.doc(word版本,带完整文档结构图)

    又通常情况下,组件(或对象)表现为具体在程序开发过程中很少变化的、占用大量CPU时间的决定性的程序,例如窗口部件和数据结构。对那种在产品的生命周期内变化比较多的应用方向使用Lua可以更方便的适应变化。除了...

    正则表达式经典实例.pdf

    3.2 导入正则表达式函数库 3.3 创建正则表达式对象 3.4 设置正则表达式选项 3.5 检查是否可以在目标字符串中找到匹配 3.6 检查正则表达式能否整个匹配目标字符串 3.7 获取匹配文本 3.8 决定匹配的位置和长度 3.9 ...

    正则表达式经典实例

    3.2 导入正则表达式函数库 3.3 创建正则表达式对象 3.4 设置正则表达式选项 3.5 检查是否可以在目标字符串中找到匹配 3.6 检查正则表达式能否整个匹配目标字符串 3.7 获取匹配文本 3.8 决定匹配的位置和长度 ...

    数据融合matlab代码-SFND_Radar_Target_Generation_and_Detection:Udacity传感器融合雷达项

    Matlab项目中的处理流程包括以下步骤: 移动目标生成 FMCW配置:此处的斜率等参数是根据要求计算得出的 FMCW波形生成 范围测量 距离多普勒React CFAR检测 系统要求 下表概述了该项目对雷达系统的要求。 目标产生 ...

    SuperCollider-3.11.0-macOS-signed.zip 亲测可用:用于音频合成和算法合成的平台

    功能语言-sclang单一继承面向对象和函数式语言类似于Smalltalk或Ruby,语法类似于C或Javascript动态类型恒定时间消息查找和实时垃圾收集用作一流对象闭包是词法,作用域是词法和动态协程列表理解局部应用(显式计算...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    mission-control:简单的项目管理软件。 与您的团队一起创建待办事项,发送消息并安排活动

    用于验证,格式化和处理日期的所有日期和时间函数都是在纯JavaScript中完成的,没有外部库。 export const formatDate = date => { return ` ${ abbrvDayOfTheWeek ( date ) } , ${ abbrvMonth ( date ) } ${ date...

Global site tag (gtag.js) - Google Analytics