- 浏览: 60185 次
- 性别:
- 来自: 深圳
最新评论
1.当前时间
Time.new 或Time.now
2.Time类的方法mktime(同义方法是local方法)来根据传入的参数生成时间对象,并且它使用的是当前的时间
3.Time.gm(同义方法是Time.utc)方法基本上和上面的mktime用法相同,但它使用的是GMT或 UTC时区
4.Time对象的to_a方法
生成的时间对象有一个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)
5.使用秒数来创建日期
在内部,日期存储为一个整数,代表从1970年开始到当前的秒数,我们可以获取这么秒数或则利用这个秒数来创建日期:
6.格式化时间
所有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 时区名,如"中国标准时间"
%% 字面符号%
7.Time对象的常用方法
还有to_a, to_i,to_s ....更多参考http://ruby-doc.org/core/
8.rails日期和时间的扩展
这些只是其中的一部分,如果想知道更多的函数可以参看rails api。你还可以参考下面这篇文章http://blog.zool.it/posts/rails-in-the-method-of-operation-of-time,他最后提到的by_star这个插件是用来做时间搜索的,我之前也用过,你可以去用下。
Time.new 或Time.now
2.Time类的方法mktime(同义方法是local方法)来根据传入的参数生成时间对象,并且它使用的是当前的时间
t1 = Time.mktime(2001) => Mon Jan 01 00:00:00 +0800 2001 t2 = Time.mktime(2001,3) => Thu Mar 01 00:00:00 +0800 2001 t3 = Time.mktime(2001,3,15) => Thu Mar 15 00:00:00 +0800 2001 t4 = Time.mktime(2001,3,15,21) => Thu Mar 15 21:00:00 +0800 2001 t5 = Time.mktime(2001,3,15,21,30) => Thu Mar 15 21:30:00 +0800 2001 t6 = Time.mktime(2001,3,15,21,30,15) => Thu Mar 15 21:30:15 +0800 2001
3.Time.gm(同义方法是Time.utc)方法基本上和上面的mktime用法相同,但它使用的是GMT或 UTC时区
t8 = Time.gm(2001,3,15,21,30,15) => Thu Mar 15 21:30:15 UTC 2001 t9 = Time.utc(2001,3,15,21,30,15) => Thu Mar 15 21:30:15 UTC 2001
4.Time对象的to_a方法
生成的时间对象有一个to_a方法,可以把时间相关一信息转化成一个数组。
t9.to_a => [15, 30, 21, 15, 3, 2001, 4, 74, false, "UTC"]
数组中存放的信息格式如下:
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)
5.使用秒数来创建日期
在内部,日期存储为一个整数,代表从1970年开始到当前的秒数,我们可以获取这么秒数或则利用这个秒数来创建日期:
epoch = Time.at(0) # Find the epoch (Thu Jan 01 08:00:00 +0800 1970) newmil = Time.at(978307200) # Happy New Millennium! (Mon Jan 01 08:00:00 +0800 2001) now = Time.now # Sat Mar 05 16:25:00 +0800 2011 sec = now.to_i # 1299313500
6.格式化时间
time.strftime( string ) => string t = Time.now => Sat Mar 05 16:36:18 +0800 2011 t.strftime("%Y/%m/%d %H:%M") => "2011/03/05 16:36" t.strftime("%Y/%m/%d") => "2011/03/05"
所有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 时区名,如"中国标准时间"
%% 字面符号%
7.Time对象的常用方法
t = Time.now t= Time.now=> Sat Mar 05 16:57:35 +0800 2011 t.year=> 2011#年 t.month => 3#月 t.day => 5#日 t.hour => 16#小时 t.min => 57#分钟 t.sec => 35#秒 t.wday => 6#表示星期六,星期天为0 t.yday => 64#一年的第几天
还有to_a, to_i,to_s ....更多参考http://ruby-doc.org/core/
8.rails日期和时间的扩展
now = Time.now => Sat Mar 05 17:09:55 +0800 2011 now.to_date => Sat, 05 Mar 2011 now.to_s => "Sat Mar 05 17:09:55 +0800 2011" now.to_s(:short) => "05 Mar 17:09" now.to_s(:long) => "March 05, 2011 17:09" now.to_s(:db) => "2011-03-05 17:09:55" now.to_s(:rfc822) => "Sat, 05 Mar 2011 17:09:55 +0800" now.at_beginning_of_day => Sat Mar 05 00:00:00 +0800 2011 now.at_beginning_of_month => Tue Mar 01 00:00:00 +0800 2011 now.at_beginning_of_week => Mon Feb 28 00:00:00 +0800 2011 now.at_beginning_of_quarter => Sat Jan 01 00:00:00 +0800 2011 now.at_beginning_of_year => Sat Jan 01 00:00:00 +0800 2011 now.at_midnight => Sat Mar 05 00:00:00 +0800 2011 now.change(:hour => 13) => Sat Mar 05 13:00:00 +0800 2011 now.last_month => Sat Feb 05 17:09:55 +0800 2011 now.last_year => Fri Mar 05 17:09:55 +0800 2010 now.midnight => Sat Mar 05 00:00:00 +0800 2011 now.monday => Mon Feb 28 00:00:00 +0800 2011 now.months_ago(2) => Wed Jan 05 17:09:55 +0800 2011 now.months_ago(1) => Sat Feb 05 17:09:55 +0800 2011 now.months_ago(3) => Sun Dec 05 17:09:55 +0800 2010 now.months_since(2) => Thu May 05 17:09:55 +0800 2011 now.next_week => Mon Mar 07 00:00:00 +0800 2011 now.next_year => Mon Mar 05 17:09:55 +0800 2012 now.seconds_since_midnight => 61795.249 now.since(7200) => Sat Mar 05 19:09:55 +0800 2011 now.tomorrow => Sun Mar 06 17:09:55 +0800 2011 now.years_ago(2) => Thu Mar 05 17:09:55 +0800 2009 now.years_since(2) => Tue Mar 05 17:09:55 +0800 2013 now.yesterday=> Fri Mar 04 17:09:55 +0800 2011 now.advance(:days => 30) => Mon Apr 04 17:09:55 +0800 2011 Time.days_in_month(2) => 28 Time.days_in_month(2,2000) => 29
这些只是其中的一部分,如果想知道更多的函数可以参看rails api。你还可以参考下面这篇文章http://blog.zool.it/posts/rails-in-the-method-of-operation-of-time,他最后提到的by_star这个插件是用来做时间搜索的,我之前也用过,你可以去用下。
发表评论
-
Diaspora 功能特性列表
2013-05-10 14:25 1025Diaspora Function Features List ... -
rails scaffold getting the column list from existing table
2011-09-23 10:02 918之前一直找这个问题的解决办法,但一直没找到,在g上看到了一个人 ... -
ruby语法-传值
2011-08-23 16:49 1057=begin def test1(*a) p a.firs ... -
Rails 3 用 JQuery 替代 Prototype
2011-07-28 22:48 11381.进入到工程目录中修改Gemfile文件,加入如下行: g ... -
Generate a list of Rails controllers and methods
2011-07-01 17:40 858列出项目中的controler和他对应的actions: @c ... -
Ubuntu手动安装JDK
2011-05-20 16:03 574Ubuntu手动安装JDK 安装前可以查看一下jdk版本,进 ... -
bundler
2011-04-25 12:12 832Rails3里多了个Bundler工具。 它是一个Librar ... -
研究小计1
2011-04-20 00:55 666有时候对一些基础的东西,不知道它的边界在哪里,其实做些小实验就 ... -
RubyGem version error: rack(1.0.0 not ~> 1.0.1)
2011-04-17 00:09 1362I have this error when I try to ... -
rubyonrails Restful Authentication 插件
2011-04-17 00:01 816restful_authentication是Rails的一个 ... -
XP.CMD命令大全
2011-04-17 00:00 639有关某个命令的详细信 ... -
几个有用的方法
2011-04-16 23:58 591hash.invert Returns a new hash ... -
Firefox键盘快捷方式
2011-04-16 23:55 1218Firefox键盘快捷方式 键盘快捷健 下面是 Mozil ... -
Ubuntu手动安装JDK
2011-04-16 23:53 735Ubuntu手动安装JDK 安装前可以查看一下jdk版本,进 ... -
字符转时间格式转换成时间对象
2011-04-16 23:52 764Time.parse("Wed, 23 Jan 20 ... -
使用Rails时遇到了服务器启动问题 script/server:3
2011-04-16 23:47 1291境 Windows Vista Home Premium c ... -
DoDirectPayment
2011-04-16 23:44 1002DoDirectPayment 1. DoDirectPay ... -
Rails异常处理
2011-04-16 23:43 964异常处理是开发过程中 ... -
ruby和rails中的回调函数
2011-04-16 23:41 1888Ruby中Class,Object,Module这三个类定义了 ... -
深入理解alias, alias_method和alias_method_chain
2011-04-16 23:41 891对 于alias, alias_method, alias_m ...
相关推荐
Ruby 中处理时间和日期 Ruby 中处理时间和日期可以使用 Time 类来生成当前时间的对象。Time 类有类方法 mktime(同义方法是 local 方法)来根据传入的参数生成时间对象,并且它使用的是当前的时区。例如: t = ...
Ruby-Chronic是一个专门为Ruby编程语言设计的自然...总的来说,Ruby-Chronic是一个强大的工具,它极大地提高了处理自然语言日期和时间的效率和用户体验。无论是小型项目还是大型应用,它都能成为开发者不可或缺的助手。
在Ruby编程语言中,时间日期处理是至关重要的,特别是在开发涉及日志记录、事件调度或数据分析的应用程序时。"11.5 时间日期the ruby way"这个主题深入探讨了Ruby中处理时间日期的最佳实践和常见用法。让我们逐一...
在Rails中,ActiveRecord默认提供了多种验证方法,如`validates_length_of`、`validates_numericality_of`等,但这些方法对日期和时间的处理并不全面。`validates_timeliness` 插件则填补了这一空白,它支持以下功能...
在上述内容中,还有一些参考资料链接,指向了其他解释 Ruby 日期处理方法的资源。这些链接可能提供了额外的实现方式或者相关知识拓展,但在此我们主要关注上述的代码实现方法。 总结来说,在 Ruby on Rails 中,...
Ruby是一种强大的动态编程语言,广泛应用于Web开发和脚本编写。在处理日期和时间时,Ruby提供了多种内置库,如Date、Time以及...通过结合Ruby的标准日期库和其他工具,你可以构建出强大而灵活的日期处理系统。
通过以上内容,我们可以看到Ruby-TZInfoRubyTimezone库在日期和时间处理中的关键作用,它是开发跨时区应用的重要工具,能够帮助开发者避免由于时区和夏令时处理不当导致的错误。在实际项目中,正确使用TZInfo库可以...
本教程将详细介绍在Ruby中如何处理日期和时间,包括创建日期时间对象、获取日期时间的各个组成部分、使用不同的时间函数、处理时区和夏令时以及日期时间的格式化方法。 首先,要创建当前的日期和时间对象,可以使用...
在Ruby on Rails开发中,时间与日期的展示是常见的需求,尤其当涉及到用户交互时,为...在实际项目中,结合其他前端库如 Moment.js 或者 Luxon,还能进一步增强时间日期的处理能力,提供更丰富的格式化选项和交互体验。
在处理日期和时间相关的任务时,Ruby提供了多种库和工具。"Ruby-biz"是一个专门为处理工作日和办公时间而设计的Ruby库,它可以帮助开发者更精确地计算工作日之间的差异、工作小时等,特别是在业务逻辑中涉及到时间...
`business_time` 是一个Ruby库,专门用于处理这种基于办公的日历和时间计算,从而帮助开发者更准确地进行业务相关的时序运算。 `business_time` 库的核心功能包括: 1. **工作日计算**:在业务场景中,周末和节...
它包含了各种数据,如日期/时间格式、数字格式、货币格式、排序规则、拼写检查等,以及用于处理这些任务的API。ICU在许多语言环境中都是标准的本地化工具,包括Java、C++和.NET等。 Ruby-twittercldrrb库将ICU的...
Ruby是一种面向对象的编程语言,以其简洁和优雅的语法著称。在Ruby中,日期和时间的处理是非常常见的任务,而标准库中的...通过熟练掌握和运用这个库,你的Ruby项目将在时间和日期处理方面展现出更高的效率和用户体验。
Ruby的标准库提供了大量预装模块和类,用于文件操作、网络通信、日期和时间处理等各种任务,是Ruby强大功能的基础。 2. `ruby20-core.chm`:可能是关于Ruby 2.0核心库的文档,核心库包含了语言的基本结构和功能,如...
在处理日期和时间时,Ruby提供了内置的Date、Time以及DateTime类,这些类可以帮助我们进行基本的时间操作。然而,有时我们需要更复杂的计算,比如计算两个时间点之间的差值,这时可以借助第三方Gem库来实现,比如...
其中包括文件操作、网络通信、XML解析、日期和时间处理、数学运算等功能。例如,`File`类用于处理文件和目录,`Net::HTTP`用于HTTP通信,`JSON`模块则用于解析和生成JSON格式的数据。通过这个文档,你可以了解到每个...
Ruby还拥有丰富的标准库,包括文件操作、网络通信、日期和时间处理等,这些都通过简单的API供开发者使用。此外,Ruby的错误处理机制采用异常处理,通过`begin-rescue-end`块来捕获和处理运行时可能出现的问题。 接...
例如,你可能希望在每个日志条目前添加日期和时间,以及产生日志的代码行号。 在实际应用中,Ruby-Logging库还提供了过滤器功能,这使得你可以根据特定条件决定是否记录日志。比如,你可以设置一个过滤器,只记录...
3. **处理日期和时间**: 默认情况下,Ruby的JSON库不会自动处理Date或Time对象,它们会被转换为字符串。如果你想保持日期和时间的原始类型,可以自定义JSON生成器,或者使用`as_json`方法来定义如何转换这些对象。...