`
java-admin
  • 浏览: 1382027 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

ruby time

 
阅读更多
  Ruby时间日期处理

2008-07-08 18:01:45|  分类: Ruby |  标签: |字号 订阅

我们可以使用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://xcily1.blog.163.com/blog/static/287169162008686145601/

 

分享到:
评论

相关推荐

    Ruby Time Tracker-开源

    Ruby Time Tracker是一款基于Ruby语言开发的开源时间管理工具,专为开发者和团队设计,用于跟踪项目和任务的工作时间。这款工具允许用户记录他们花费在不同任务上的时间,从而提高工作效率和项目管理能力。RubyTime...

    Ruby中Time对象的常用函数总结

    ### Ruby中Time对象的常用函数总结 在Ruby编程语言中,`Time`对象是一个非常重要的类,用于处理日期和时间相关的操作。本文将详细介绍`Time`对象的一些常见且实用的方法和函数,帮助开发者更好地理解和应用这些功能...

    Ruby中处理时间的一些基本操作

    在Ruby编程语言中,处理时间是一项常见的任务,而Ruby提供了强大的`Time`模块来支持这一需求。本篇文章将深入探讨如何使用Ruby中的`Time`模块进行时间的基本操作。 首先,获取当前日期和时间非常简单。你可以通过...

    time_up::stopwatch: 创建和管理多个计时器,以告诉您 Ruby 代码的时间都花在了哪里

    是否曾经需要测量一段或多位 Ruby 代码的运行时间,但不一定想要达到或推出您自己的临时测量代码? 尝试time_up ! 这个 gem 对于长时间运行的流程(如测试套件)特别有用,这些流程有几个在流程的生命周期中重复的...

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

    Ruby通过其标准库中的Time类为开发者提供了丰富的日期和时间处理功能。本教程将详细介绍在Ruby中如何处理日期和时间,包括创建日期时间对象、获取日期时间的各个组成部分、使用不同的时间函数、处理时区和夏令时以及...

    ruby基础教程(第四版)第20章 Time类与Date类1

    本章节将详细讲解Ruby中的`Time`类和`Date`类,以及如何进行时间相关的操作。 首先,我们来看`Time`类。`Time`类主要用于处理带有时间戳的时间对象,它可以从系统获取当前时间,比如使用`Time.new`或`Time.now`。...

    Ruby-RubyCompiler针对Ruby设计的AOTAOT编译器

    Ruby Compiler是专门为Ruby语言设计的一种AOT(Ahead-of-Time)编译器,它的出现是为了提高Ruby程序的运行效率和性能。与传统的JIT(Just-In-Time)编译器不同,AOT编译器在程序执行前就将源代码编译为机器码,使得...

    android ruby解释器

    为了解决这个问题,可以考虑使用AOT(Ahead-Of-Time)编译技术,将Ruby代码预编译为Dalvik或ART可以理解的字节码,从而提高运行效率。 总的来说,Android Ruby解释器为Android开发带来了一种新的可能性,让熟悉Ruby...

    Ruby.Performance.Optimization

    You'll find out that garbage collection accounts for 80% of slowdowns, and often takes more than 50% of your program's execution time. And you'll discover the bottlenecks in Rails code and learn how ...

    ruby2.6.1.zip

    6. **Ruby编译器选项**:这个版本增加了新的编译器选项,如`--enable-jit`(Just-In-Time编译),可以开启JIT编译以提高运行时性能。 7. **Ruby垃圾收集(GC)改进**:Ruby 2.6.1改进了垃圾收集算法,降低了内存...

    ruby-2.5.8.tar.gz

    - **性能提升**:Ruby 2.5引入了JIT(Just-In-Time)编译器,提升了执行效率。 - **线程改进**:多线程性能得到了优化,减少了全局解释器锁(GIL)对并发的影响。 - **语法糖**:添加了`safe navigation operator...

    Ruby Performance Optimization, Why Ruby is Slow, and How to Fix It

    You’ll find out that garbage collection accounts for 80% of slowdowns, and often takes more than 50% of your program’s execution time. And you’ll discover the bottlenecks in Rails code and learn ...

    ruby-2.6.3源码压缩包

    1. **Just-In-Time (JIT) 编译器**:Ruby 2.6引入了一个内置的JIT编译器,名为RuboCop,它能够提升解释器执行效率,尤其是在处理复杂循环和函数调用时。 2. **安全的字符串连接操作**:Ruby 2.6引入了`String#%w[]`...

    Ruby-TZInfoRubyTimezone库

    Ruby-TZInfoRubyTimezone库是一个专门为Ruby编程语言设计的时区处理库,它提供了对全球不同时区的详尽支持,并且能够处理夏令时(Daylight Saving Time,DST)的变化。这个库的核心功能在于帮助开发者在处理日期和...

    ruby使用json库

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

    ruby-2.2.0.tar.gz

    例如,引入了全新的Just-In-Time (JIT)编译器,可以显著提升某些代码段的执行速度。此外,这个版本还支持位操作符,改进了元编程能力,以及对Unicode字符的更好处理。对于开发者来说,这些更新意味着更快的应用程序...

    Ruby-timediff计算两个时间相差多少的Gem

    在处理日期和时间时,Ruby提供了内置的Date、Time以及DateTime类,这些类可以帮助我们进行基本的时间操作。然而,有时我们需要更复杂的计算,比如计算两个时间点之间的差值,这时可以借助第三方Gem库来实现,比如...

    叶玎玎:Real Time Solutions with Ruby

    标题“叶玎玎:Real Time Solutions with Ruby”中的“Real Time Solutions with Ruby”明确指出本演讲或文章的主题是关于如何利用Ruby编程语言来实现实时应用解决方案。“叶玎玎”则是演讲者或作者的名字。 #### ...

Global site tag (gtag.js) - Google Analytics