`
lionheart
  • 浏览: 91227 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ruby way --- 日期和时间类

阅读更多

 

1. Time.new / Time.now 获取当前日期和时间

 

2. mktime / local (使用本地时区) : 根据传递给它的参数创建一个新的Time对象。传递的时间单位是按由长到短的顺序指定:年、月、日、小时(0~23)、分钟、秒、微妙。除了年以外其它可选。默认值是可能的最小值。

 

Time.mktime(2008) #2008.1.1 0:00:00
Time.mktime(2008,10,15,10,20,20) # 2008.10.15 10:20:20
Time.local(2008,10,15,10,20,20) # 2008.10.15 10:20:20
 

    gm / utc(采用GMT或UTC) :

 

Time.local(2008,10,15,10,20,20) # 2008.10.15 10:20:20 +0800
Time.gm(2008,10,15,10,20,20) # 2008.10.15 10:20:20 UTC

 

3. to_a : 将时间转换为相关值的数组,从下标0-9依次为:秒(sec),分钟(min),小时(hour),日期(day/mday),月(mon/month),年(year),星期几(wday)(0..6),一年中的第几天(yday),是否为夏令时间(true或false)和时区(zone)(用字符串表示)。

 

 

t = Time.local(2008,10,15,10,20,20)
puts t.to_a  #[20,20,10,15,10,2008,3,289,false,'中国标准时间']

 

4. wday: 返回一星期中的第几天(0表示周日)。

     yday: 返回一年中的第几天。

     mday: 返回一个月中第几天。

 

 

5. Time.at : 根据从纪元(1 Jan 1970 GMT)开始的秒数创建新的时间。

 

6. 在特定时间上增加间隔来获取新的时间,间隔的单位为秒。

 

t = Time.local(2008,10,15,10,20,20)
t1 = t + 60 # t往后1分钟
t2 = t + 3600 # t往后1小时

    如果要获取两个时间的间隔,将两个Time对象相减将得到秒数。如上面

 

t1 - t # 60

7. 日期和时间值得格式化输出: strftime.

    该方法能够识别的常用指令有:

  • %a :星期中天数的缩写,如 "Sun"
  • %A :完整的星期中天数,如 "Sunday"
  • %b :月名称的缩写,如 "Jan"
  • %B :完整的月名称,如 "January"
  • %d :一个月中第几天(01..31)
  • %H :以24小时制表示的时间(00..23)
  • %I  :以12小时制表示的时间(1..12)
  • %m :月份(1..12)
  • %M :分钟(00..59)
  • %p : AM 或 PM
  • %S :秒(00..59)
  • %w:一星期中的第几天(星期日为0)
  • %x :只显示日期,不显示时间
  • %X :只显示时间,不显示日期,以 HH:MM:SS的格式
  • %y :两位表示的年份
  • %Y :四位的年份
  • %Z :时区

在web页面中通常需要将日期以中文的形式表示出来,可以使用如下的方式:

 

t = Time.now
t.strftime("%Y年%m月%d日 %H时%M分%S秒")  #XXXX年XX月XX日 XX时XX分XX秒

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics