`
sinkzephyr
  • 浏览: 89722 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

转:Ruby中处理时间和日期

    博客分类:
  • Ruby
阅读更多
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 中处理时间和日期 Ruby 中处理时间和日期可以使用 Time 类来生成当前时间的对象。Time 类有类方法 mktime(同义方法是 local 方法)来根据传入的参数生成时间对象,并且它使用的是当前的时区。例如: t = ...

    ruby语言帮助文档(简体中文)

    7. **标准库和Gem**:Ruby的标准库提供了大量的内置模块和类,覆盖了网络、文件系统操作、日期时间处理等常见任务。此外,Ruby的生态中还有大量的开源库(Gem),通过`gem install`命令可以轻松安装和管理。 8. **...

    Ruby-Chronic一个纯Ruby编写的自然语言日期时间解析器

    Ruby-Chronic是一个专门为Ruby编程语言设计的自然...总的来说,Ruby-Chronic是一个强大的工具,它极大地提高了处理自然语言日期和时间的效率和用户体验。无论是小型项目还是大型应用,它都能成为开发者不可或缺的助手。

    Ruby-validatestimelinessActiveModel和Rails的日期与时间验证插件

    `validates_timeliness` 是一个针对 Ruby on Rails(以及支持 ActiveModel 的其他 ORM)的插件,用于增强模型中日期和时间的验证功能。这个插件使得开发者能够更精细地控制日期和时间字段的验证规则,确保数据的准确...

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

    本教程将详细介绍在Ruby中如何处理日期和时间,包括创建日期时间对象、获取日期时间的各个组成部分、使用不同的时间函数、处理时区和夏令时以及日期时间的格式化方法。 首先,要创建当前的日期和时间对象,可以使用...

    Ruby语言中文教程

    6. 标准库丰富:Ruby的标准库包含了大量预定义的类和模块,涵盖了网络通信、文件操作、日期和时间处理等多个领域。 7. Rails框架:Ruby最著名的应用是与Rails框架的结合,Rails是一个用于构建Web应用的全栈框架,...

    rubyonrails+Ruby+取得指定月日期数方法

    Ruby on Rails 是一个使用 Ruby 语言编写的开源 web 应用框架,它遵循 MVC(模型-视图-控制器)架构模式。...此外,对时间处理感兴趣的开发者可以进一步探索 `Time` 类,它是 Ruby 处理时间的另一个重要类。

    Ruby-yymmddTinyDSL用于Ruby解析和格式化日期

    在处理日期和时间时,Ruby提供了多种内置库,如Date、Time以及ActiveSupport的TimeWithZone等。然而,对于某些特定需求,开发者可能会寻找更加轻量级和灵活的解决方案,这就是`yymmdd`项目的目的所在。 `yymmdd`是...

    ruby 阳历农历转换类

    6. **时间对象的处理**:Ruby中可以使用Time或者DateTime对象来表示日期和时间,转换类需要能够接受和返回这些对象。 7. **异常处理**:在进行日期转换时,可能会遇到无效的输入,如非法的年份、月份或日期,因此...

    Ruby API 帮助文档.zip

    6. **标准库**: Ruby的标准库是一系列预先打包的模块和类,提供各种通用功能,如文件操作、网络通信、日期和时间处理等。例如,`File`类用于处理文件和目录,`Net::HTTP`用于HTTP请求。 7. **Gem**: Gem是Ruby的包...

    11.5 时间日期the ruby way.rar

    "11.5 时间日期the ruby way"这个主题深入探讨了Ruby中处理时间日期的最佳实践和常见用法。让我们逐一了解这些知识点。 首先,`Time.now`是Ruby中获取当前时间的标准方法。它返回一个`Time`对象,表示自1970年1月1...

    Ruby-TZInfoRubyTimezone库

    通过以上内容,我们可以看到Ruby-TZInfoRubyTimezone库在日期和时间处理中的关键作用,它是开发跨时区应用的重要工具,能够帮助开发者避免由于时区和夏令时处理不当导致的错误。在实际项目中,正确使用TZInfo库可以...

    Ruby中文教程

    7. 核心库和标准库:讲解Ruby内建库的使用,如日期和时间处理、正则表达式、JSON解析等。 8. 元编程:介绍如何在运行时动态创建和修改类、方法,以及Ruby的元类和模块的混入机制。 9. Ruby on Rails:如果教程深入...

    关于ruby学习的资料

    6. 标准库:Ruby的标准库包含大量预定义的模块和类,涵盖了网络通信、文件操作、日期时间处理等多个领域。 7. 社区支持:Ruby拥有活跃的开发者社区,如Ruby on Rails框架的流行,带动了大量高质量的开源项目和工具...

    Ruby-localtimeRails引擎向用户用当地时间格式来显示时间和日期

    在Ruby on Rails开发中,时间与日期的展示是常见的需求,尤其当涉及到用户交互时,为...在实际项目中,结合其他前端库如 Moment.js 或者 Luxon,还能进一步增强时间日期的处理能力,提供更丰富的格式化选项和交互体验。

    Ruby200

    8. **标准库**:Ruby 拥有一个丰富的标准库,包含了各种常用的工具和功能,如文件操作、网络通信、日期和时间处理等。 Ruby 200 版本可能是在 Ruby 1.9.x 系列之后的一个更新,它可能引入了一些改进和修复。不过,...

    ruby使用案例红宝石

    Ruby的标准库提供了大量内置模块和类,涵盖了文件操作、网络通信、日期和时间处理等多个方面,为开发者提供了丰富的工具。 9. **编程风格**: Ruby鼓励使用清晰、一致的代码风格,如使用两个空格缩进,以及将方法...

    programing ruby (chm中文)

    7. 核心库和标准库:介绍Ruby自带的各种库和模块,如字符串操作、数学函数、日期和时间处理等。 8. Ruby on Rails:虽然书中可能不包含这部分,但Ruby通常与流行的Web框架Rails一起被提及,它是开发高效Web应用的...

Global site tag (gtag.js) - Google Analytics