【转】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 #
日期的格式化
====================================================
获取本日是星期几:
now = Time.now + 1
day_num = now.wday #
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 #
week1b = t1.strftime("%W").to_i #
week1c = d1.cweek #
获取当前时区:
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://hi.baidu.com/quick9999/item/caf3c454d308e3c09e26673a
【转】ruby 时间日期处理的更多相关文章
- 一起学微软Power BI系列-使用技巧(5)自定义PowerBI时间日期表
1.日期函数表作用 经常使用Excel或者PowerBI,Power Pivot做报表,时间日期是一个重要的纬度,加上做一些钻取,时间日期函数表不可避免.所以今天就给大家分享一个自定义的做日期表的方法 ...
- MySQL学习记录--生成时间日期数据
时间数据格式组件: 组件 定义 范围 YYYY 年份,包括世纪 1000~9999 MM 月份 01(January)~12(December) DD 日 01~31 HH 小时 00~23 HHH ...
- SQL-数学、字符串、时间日期函数和类型转换
--数学函数 --ABS绝对值,select ABS(-99)--ceiling取上限,select CEILING(4.5)--floor去下限select FLOOR(4.5)--power 几次 ...
- SQLite中的时间日期函数(转)
SQLite包含了如下时间/日期函数: datetime().......................产生日期和时间date()...........................产生日期tim ...
- C语言中两种方式表示时间日期值time_t和struct tm类型的相互转换
使用gmtime函数或localtime函数将time_t类型的时间日期转换为structtm类型: 使用time函数返回的是一个long值,该值对用户的意义不大,一般不能根据其值确定具体的年.月.日 ...
- Android开发之时间日期1
对于手机的时间日期设置估计大家一定都不陌生吧,今天做了一个关于时间日期设置的小例子,其中遇到一个问题,求指导,如何使设置的时间日期和手机系统同步?还望高手指点一二. 先不说这个了,分享一下我的小例子 ...
- java开源时间/日期库Joda-Time
任何企业应用程序都需要处理时间问题.应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径.使用 JDK 完成这项任务将非常痛苦和繁琐.现在来看看 Joda Time,一 ...
- Java中时间日期格式化
1.与日期时间相关的类: 第一:java.util.Date; 将时间作为一个整体使用.处理时,使用Date类较为简便 第二:j ...
- PostgreSQL的时间/日期函数使用
PostgreSQL的常用时间函数使用整理如下: 一.获取系统时间函数 1.1 获取当前完整时间 select now(); david=# select now(); now ----------- ...
随机推荐
- Java语言实现简单FTP软件------>上传下载管理模块的实现(十一)
1.上传本地文件或文件夹到远程FTP服务器端的功能. 当用户在本地文件列表中选择想要上传的文件后,点击上传按钮,将本机上指定的文件上传到FTP服务器当前展现的目录,下图为上传子模块流程图 选择好要上传 ...
- linux c编程:系统数据文件和信息
linux系统相关的文件信息包含在/etc/passwd文件和/etc/group中.每次登录linux系统以及每次执行ls -l命令时都要使用口令文件.这些字段都包含在<pwd.h>中定 ...
- openstack 官方镜像qcow2 下载和修改密码
下载地址: CentOS6:http://cloud.centos.org/centos/6/images/ CentOS7:http://cloud.centos.org/centos/7/imag ...
- 安装Nginx 及使用
1.下载 Nginx wget http://nginx.org/download/nginx-1.10.3.tar.gz (稳定版) 2.提前下载好依赖包 openssl.zlib.pcre p ...
- 牛客小白月赛1 B 简单题2 【数学】
题目链接 https://www.nowcoder.com/acm/contest/85/B 思路 这个 也是 E AC代码 #include <cstdio> #include < ...
- 【LeetCode】数组排列问题(permutations)(附加next_permutation解析)
描述 Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2,3 ...
- 面向对象分析与设计(C++)课堂笔记
第一次课: 对象是程序设计最基本的单元 对象:对象标识.属性.操作(对象标识又分为内部标识.外部标识) 三三制原则 继承:英文语义”is a kind of” 自动的拥有或隐含的复制 虚基类:解决多继 ...
- P3506 [POI2010]MOT-Monotonicity 2
题目 P3506 [POI2010]MOT-Monotonicity 2 第一次切掉没题解的题\(qwq\) 做法 首先确定\(a_i\)的位置后显然就能确定\(a_{i+1}\)的位置,建一棵权值线 ...
- android OTG【转】
本文转载自:http://blog.csdn.net/xubin341719/article/details/7707056 一.OTG的概念 OTG是On-The-Go的缩写,是近年发展起来的技术, ...
- Hive split分割后获取最后一段
----------------------------------------- 如果只看解决方法,直接看最后... ---------------------------------------- ...