Ruby中处理时间和日期
所有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
%X 本地时间,如 16:43:49
%y 2位的年份表示,如07
%Y 4位的年份表示,如2007
%Z 时区名,如"中国标准时间"
%% 字面符号%
我们可以使用Time类来生成一个当前时间的对象:
t = Time.new
或
t = Time.now
Time类有类方法mktime(同义方法是local方法)来根据传入的参数生成时间对象,并且它使用的是当前的时区:
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
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)
生成的时间对象有一个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)
使用秒数来创建日期:
====================================================
在内部,日期存储为一个整数,代表从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
日期的格式化
====================================================
获取本日是星期几:
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
转自:http://zarknight.iteye.com/blog/126411
分享到:
相关推荐
Ruby 中处理时间和日期 Ruby 中处理时间和日期可以使用 Time 类来生成当前时间的对象。Time 类有类方法 mktime(同义方法是 local 方法)来根据传入的参数生成时间对象,并且它使用的是当前的时区。例如: t = ...
7. **标准库和Gem**:Ruby的标准库提供了大量的内置模块和类,覆盖了网络、文件系统操作、日期时间处理等常见任务。此外,Ruby的生态中还有大量的开源库(Gem),通过`gem install`命令可以轻松安装和管理。 8. **...
Ruby-Chronic是一个专门为Ruby编程语言设计的自然...总的来说,Ruby-Chronic是一个强大的工具,它极大地提高了处理自然语言日期和时间的效率和用户体验。无论是小型项目还是大型应用,它都能成为开发者不可或缺的助手。
`validates_timeliness` 是一个针对 Ruby on Rails(以及支持 ActiveModel 的其他 ORM)的插件,用于增强模型中日期和时间的验证功能。这个插件使得开发者能够更精细地控制日期和时间字段的验证规则,确保数据的准确...
本教程将详细介绍在Ruby中如何处理日期和时间,包括创建日期时间对象、获取日期时间的各个组成部分、使用不同的时间函数、处理时区和夏令时以及日期时间的格式化方法。 首先,要创建当前的日期和时间对象,可以使用...
6. 标准库丰富:Ruby的标准库包含了大量预定义的类和模块,涵盖了网络通信、文件操作、日期和时间处理等多个领域。 7. Rails框架:Ruby最著名的应用是与Rails框架的结合,Rails是一个用于构建Web应用的全栈框架,...
Ruby on Rails 是一个使用 Ruby 语言编写的开源 web 应用框架,它遵循 MVC(模型-视图-控制器)架构模式。...此外,对时间处理感兴趣的开发者可以进一步探索 `Time` 类,它是 Ruby 处理时间的另一个重要类。
在处理日期和时间时,Ruby提供了多种内置库,如Date、Time以及ActiveSupport的TimeWithZone等。然而,对于某些特定需求,开发者可能会寻找更加轻量级和灵活的解决方案,这就是`yymmdd`项目的目的所在。 `yymmdd`是...
6. **时间对象的处理**:Ruby中可以使用Time或者DateTime对象来表示日期和时间,转换类需要能够接受和返回这些对象。 7. **异常处理**:在进行日期转换时,可能会遇到无效的输入,如非法的年份、月份或日期,因此...
6. **标准库**: Ruby的标准库是一系列预先打包的模块和类,提供各种通用功能,如文件操作、网络通信、日期和时间处理等。例如,`File`类用于处理文件和目录,`Net::HTTP`用于HTTP请求。 7. **Gem**: Gem是Ruby的包...
"11.5 时间日期the ruby way"这个主题深入探讨了Ruby中处理时间日期的最佳实践和常见用法。让我们逐一了解这些知识点。 首先,`Time.now`是Ruby中获取当前时间的标准方法。它返回一个`Time`对象,表示自1970年1月1...
通过以上内容,我们可以看到Ruby-TZInfoRubyTimezone库在日期和时间处理中的关键作用,它是开发跨时区应用的重要工具,能够帮助开发者避免由于时区和夏令时处理不当导致的错误。在实际项目中,正确使用TZInfo库可以...
7. 核心库和标准库:讲解Ruby内建库的使用,如日期和时间处理、正则表达式、JSON解析等。 8. 元编程:介绍如何在运行时动态创建和修改类、方法,以及Ruby的元类和模块的混入机制。 9. Ruby on Rails:如果教程深入...
6. 标准库:Ruby的标准库包含大量预定义的模块和类,涵盖了网络通信、文件操作、日期时间处理等多个领域。 7. 社区支持:Ruby拥有活跃的开发者社区,如Ruby on Rails框架的流行,带动了大量高质量的开源项目和工具...
在Ruby on Rails开发中,时间与日期的展示是常见的需求,尤其当涉及到用户交互时,为...在实际项目中,结合其他前端库如 Moment.js 或者 Luxon,还能进一步增强时间日期的处理能力,提供更丰富的格式化选项和交互体验。
8. **标准库**:Ruby 拥有一个丰富的标准库,包含了各种常用的工具和功能,如文件操作、网络通信、日期和时间处理等。 Ruby 200 版本可能是在 Ruby 1.9.x 系列之后的一个更新,它可能引入了一些改进和修复。不过,...
Ruby的标准库提供了大量内置模块和类,涵盖了文件操作、网络通信、日期和时间处理等多个方面,为开发者提供了丰富的工具。 9. **编程风格**: Ruby鼓励使用清晰、一致的代码风格,如使用两个空格缩进,以及将方法...
7. 核心库和标准库:介绍Ruby自带的各种库和模块,如字符串操作、数学函数、日期和时间处理等。 8. Ruby on Rails:虽然书中可能不包含这部分,但Ruby通常与流行的Web框架Rails一起被提及,它是开发高效Web应用的...