Ruby 时间日期的用法总结
2012-08-23 18:28
232 查看
date类相关
日期的格式化
require 'date'day = Date::new(2010, 2, 23)
p day.year #=> 2010
p day.month #=> 2
p day.day #=> 23
p day.wday #=> 2
昨天, 前天
require 'date'day = Date.new(2010, 2, 23)
day = day + 1
p day.to_s #=> "2010-02-24"
day = Date.new(2010, 2, 23)
day = day - 1
p day.to_s #=> "2010-02-22"
下月,上月
require 'date'day = Date.new(2010, 2, 23)
day = day >> 1
p day.to_s #=> "2010-03-23"
day = Date.new(2010, 2, 23)
day = day << 1
p day.to_s #=> "2010-01-23"
当前日期
require 'date'day = Time.now
闰年
require 'date'day = Date.new(2008)
p day.leap? #=> true
day = Date.new(2010)
p day.leap? #=> false
Time类相关
格式化应用实例:
puts Time.now.strftime("%Y-%m-%d %H:%M:%S") #2012-03-06 15:28:08puts Time.now.strftime("%x %I:%M %p") #03/06/12 03:39 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
%X 本地时间,如 16:43:49
%y 2位的年份表示,如07
%Y 4位的年份表示,如2007
%Z 时区名,如"中国标准时间"
%% 字面符号%
我们可以使用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 # "中国标准时间"
出处:http://hi.baidu.com/mvp_xuan/item/47c214c0280a137089ad9ed2
相关文章推荐
- Ruby 时间日期的用法总结
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
- Oracle中时间日期转化函数to_date和to_char用法总结
- 日历时间日期的用法总结
- JAVA日期时间用法的总结
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
- Bootstrap-datepicker日期时间选择器的常见用法总结
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
- Mysql日期和时间函数总结
- Mysql 时间日期函数运用与总结
- Delphi查询Access日期/时间字段报错的自我总结
- Android显示时间和日期的控件的使用总结
- C/C++中的日期和时间 time_t与struct tm的用法
- MySQL日期数据类型、时间类型使用总结
- ExtJS EditorGridPanel 中 时间日期 编辑 问题的总结
- VC++获取当前系统时间日期 GetSystemTime()函数的用法
- android系统自带的日期、时间对话框的用法
- VC++获取当前系统时间日期 GetSystemTime()函数的用法