`
yanzilee9292
  • 浏览: 538497 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

RUBY处理时间格式

    博客分类:
  • ruby
 
阅读更多

最常用的情况:

t = Time.now
t.strftime "%Y%2m%2d-%2H%2M%2S"

=> "20120429-133448"
 

 

 

我们可以使用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



所有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    时区名,如"中国标准时间"
%%    字面符号%

 

参考: 

http://hi.baidu.com/%BA%C3%BA%C3%BC%D3%BC%D3%D3%CD/blog/item/0b600402655a19044afb51f5.html

分享到:
评论

相关推荐

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

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

    Ruby中处理时间和日期

    Ruby 中处理时间和日期 Ruby 中处理时间和日期可以使用 Time 类来生成当前时间的对象。Time 类有类方法 mktime(同义方法是 local 方法)来根据传入的参数生成时间对象,并且它使用的是当前的时区。例如: t = ...

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

    6. **自定义规则**:开发者可以根据需要为Chronic添加自定义的解析规则,以处理特定的日期和时间格式。 在实际开发中,Ruby-Chronic广泛应用于日程管理、事件调度、用户输入分析等领域。通过集成Chronic,开发者...

    Ruby-ParallelRuby让并行处理简单和快速

    "Parallel Ruby"库正是为此目的而设计,它使得在Ruby中实现并行处理变得简单且高效。 Parallel Ruby库是一个强大的工具,允许开发者在Ruby程序中并行运行任务,从而显著提升性能。这个库的核心理念是将工作分解成可...

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

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

    Ruby-twittercldrrbICU的Ruby实现

    它包含了各种数据,如日期/时间格式、数字格式、货币格式、排序规则、拼写检查等,以及用于处理这些任务的API。ICU在许多语言环境中都是标准的本地化工具,包括Java、C++和.NET等。 Ruby-twittercldrrb库将ICU的...

    用ruby读excel文件生成xml文件

    标题 "用ruby读excel文件...在实际应用中,根据具体需求,可能还需要处理更复杂的情况,如单元格格式、合并单元格、日期格式转换等。不过,上述步骤提供了一个基本的框架,开发者可以根据实际需求对其进行扩展和定制。

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

    在Rails中,ActiveRecord默认提供了多种验证方法,如`validates_length_of`、`validates_numericality_of`等,但这些方法对日期和时间的处理并不全面。`validates_timeliness` 插件则填补了这一空白,它支持以下功能...

    Ruby-TZInfoRubyTimezone库

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

    ruby语言帮助文当

    Ruby的标准库提供了大量预装模块和类,用于文件操作、网络通信、日期和时间处理等各种任务,是Ruby强大功能的基础。 2. `ruby20-core.chm`:可能是关于Ruby 2.0核心库的文档,核心库包含了语言的基本结构和功能,如...

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

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

    ruby官方chm文档

    其中包括文件操作、网络通信、XML解析、日期和时间处理、数学运算等功能。例如,`File`类用于处理文件和目录,`Net::HTTP`用于HTTP通信,`JSON`模块则用于解析和生成JSON格式的数据。通过这个文档,你可以了解到每个...

    Ruby-Logging一个用在Ruby程序中灵活日志库

    例如,你可能希望在每个日志条目前添加日期和时间,以及产生日志的代码行号。 在实际应用中,Ruby-Logging库还提供了过滤器功能,这使得你可以根据特定条件决定是否记录日志。比如,你可以设置一个过滤器,只记录...

    11.5 时间日期the ruby way.rar

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

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

    在Ruby on Rails开发中,时间与日期的展示是常见的需求,尤其当涉及到用户交互时,为用户提供本地化的时间和日期格式至关重要。`local_time`是一个非常实用的Rails引擎,它帮助开发者轻松地将服务器时间转化为用户的...

    ruby使用json库

    3. **处理日期和时间**: 默认情况下,Ruby的JSON库不会自动处理Date或Time对象,它们会被转换为字符串。如果你想保持日期和时间的原始类型,可以自定义JSON生成器,或者使用`as_json`方法来定义如何转换这些对象。...

    ruby mail资料

    Ruby Mail 是一个 Ruby 语言的库,用于处理电子邮件的创建、发送和解析。它提供了方便的接口,使得在 Ruby 应用程序中处理邮件变得简单。这个压缩包可能包含了一系列关于如何使用 Ruby Mail 库的文档、示例代码或者...

    Ruby-Whois一个智能纯Ruby实现的WHOIS客户端与解析器

    它设计用于查询域名、IP地址和其他WHOIS相关的记录,并能够处理各种服务器响应格式。这个库的强大之处在于它不仅可以发送WHOIS请求,还可以解析返回的数据,为用户提供方便的数据结构。 WHOIS是一种基于TCP的查询...

    Ruby-Stringex一些实用的Ruby字符串扩展类

    2. **日期和时间解析**:通过`to_date`和`to_time`方法,你可以轻松地将字符串解析成日期或时间对象,这对于处理用户输入的日期和时间数据非常有用。 3. **Unicode转换**:Stringex包含了一些处理Unicode字符的方法...

    ruby代码分享——excel应用

    时间日期格式化 利用Ruby的时间函数和格式化选项,可以在Excel中准确地显示日期时间信息。 #### 4. 调用Excel内置宏 通过`Run`方法,可以调用Excel的内置宏或自定义宏,实现复杂的数据处理和格式调整。 以上知识...

Global site tag (gtag.js) - Google Analytics