我们可以使用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
puts t。strftime("%Y-%m-%d %H:%M:%S") # 2009-11-20 10:00:20
所有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 中处理时间和日期可以使用 Time 类来生成当前时间的对象。Time 类有类方法 mktime(同义方法是 local 方法)来根据传入的参数生成时间对象,并且它使用的是当前的时区。例如: t = ...
总之,“ruby 阳历农历转换类”涉及到的编程技术包括日期和时间处理、农历和阳历的转换算法、异常处理以及面向对象编程。开发者需要对农历和阳历的天文知识有一定了解,才能编写出准确的转换代码。
"Parallel Ruby"库正是为此目的而设计,它使得在Ruby中实现并行处理变得简单且高效。 Parallel Ruby库是一个强大的工具,允许开发者在Ruby程序中并行运行任务,从而显著提升性能。这个库的核心理念是将工作分解成可...
通过以上内容,我们可以看到Ruby-TZInfoRubyTimezone库在日期和时间处理中的关键作用,它是开发跨时区应用的重要工具,能够帮助开发者避免由于时区和夏令时处理不当导致的错误。在实际项目中,正确使用TZInfo库可以...
Ruby-Chronic是一个专门为Ruby编程语言设计的自然...总的来说,Ruby-Chronic是一个强大的工具,它极大地提高了处理自然语言日期和时间的效率和用户体验。无论是小型项目还是大型应用,它都能成为开发者不可或缺的助手。
Ruby-twittercldrrb是基于ICU(International Components for Unicode)的一个Ruby库,主要用于处理国际化(i18n)和本地化(l10n)任务。这个库为Ruby开发者提供了一套强大的工具,用于在应用程序中实现多语言支持...
`business_time` 是一个Ruby库,专门用于处理这种基于办公的日历和时间计算,从而帮助开发者更准确地进行业务相关的时序运算。 `business_time` 库的核心功能包括: 1. **工作日计算**:在业务场景中,周末和节...
Ruby是一种强大的动态...总的来说,Ruby的JSON库提供了强大且直观的方式来处理JSON数据,无论是从服务器接收还是向客户端发送。理解其基本用法和高级特性,对于任何使用Ruby进行Web开发的程序员来说都是必不可少的。
Ruby-Savon是Ruby编程语言中的一个强大的SOAP(Simple Object Access Protocol)客户端库,它使得在Ruby中...无论你是新手还是经验丰富的开发者,Savon都能帮助你在处理SOAP服务时节省时间和精力,专注于你的业务逻辑。
"Ruby-biz"是一个专门为处理工作日和办公时间而设计的Ruby库,它可以帮助开发者更精确地计算工作日之间的差异、工作小时等,特别是在业务逻辑中涉及到时间计算时非常实用。 biz库的核心功能在于模拟工作日历,考虑...
Ruby的标准库提供了大量预装模块和类,用于文件操作、网络通信、日期和时间处理等各种任务,是Ruby强大功能的基础。 2. `ruby20-core.chm`:可能是关于Ruby 2.0核心库的文档,核心库包含了语言的基本结构和功能,如...
2. **日期和时间解析**:通过`to_date`和`to_time`方法,你可以轻松地将字符串解析成日期或时间对象,这对于处理用户输入的日期和时间数据非常有用。 3. **Unicode转换**:Stringex包含了一些处理Unicode字符的方法...
其中包括文件操作、网络通信、XML解析、日期和时间处理、数学运算等功能。例如,`File`类用于处理文件和目录,`Net::HTTP`用于HTTP通信,`JSON`模块则用于解析和生成JSON格式的数据。通过这个文档,你可以了解到每个...
在Rails中,ActiveRecord默认提供了多种验证方法,如`validates_length_of`、`validates_numericality_of`等,但这些方法对日期和时间的处理并不全面。`validates_timeliness` 插件则填补了这一空白,它支持以下功能...
- **Puma的线程池实现**:Puma是一个高性能的Ruby Web服务器,它使用了一个简单的线程池实现来处理并发请求。通过分析其实现细节,可以更好地理解如何在实际项目中应用线程池。 #### 结语 通过深入学习《Working ...
通过这些资源,初学者可以在短时间内建立起对Ruby语言和Rails框架的基本理解,并逐步进阶到更复杂的开发任务。记得理论学习与实践相结合,不断编写代码和调试,是提升技能的最好方式。祝你在Ruby的世界里探索愉快!
Ruby通过其标准库中的Time类为开发者提供了丰富的日期和时间处理功能。本教程将详细介绍在Ruby中如何处理日期和时间,包括创建日期时间对象、获取日期时间的各个组成部分、使用不同的时间函数、处理时区和夏令时以及...
在Ruby中,日期和时间的处理是非常常见的任务,而标准库中的`Time`类提供了很多基础操作。然而,有时候我们可能需要更加人性化的日期和时间显示方式,这就引出了`time-lord`这个库。`time-lord`是专门为Ruby的`Time`...
然而,随着时间的推移,Ruby已经发展到了更高的版本,例如Ruby 2.x和3.x系列,这些新版本带来了更多的性能提升、语言改进和安全修复。Ruby 1.8.6不再被官方支持,可能存在已知的安全漏洞和性能问题。因此,除非有...
在Ruby编程语言中,时间日期处理是至关重要的,特别是在开发涉及日志记录、事件调度或数据分析的应用程序时。"11.5 时间日期the ruby way"这个主题深入探讨了Ruby中处理时间日期的最佳实践和常见用法。让我们逐一...