【转】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 ----------- ...
随机推荐
- Android 开发之深入理解安卓调试桥各种错误解决办法
摘要: Android开发调试项目使用到安卓调试桥工具,Android Debug Bridge(ADB)位于sdk路径platform-tools文件夹,使用Android Studio或Eclip ...
- 如何在JSTL中获取数组或者list对象的索引值(index)
<c:forEach items="${productList}" var="products" varStatus="status" ...
- C#线程使用学习
线程的入口函数可以不带输入参数,也可以带输入参数: form1.cs using System; using System.Collections.Generic; using System.Comp ...
- HDU - 1800 Flying to the Mars 【贪心】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1800 题意 给出N个人的 level 然后 高的level 的 人 是可以携带 比他低level 的人 ...
- 《程序员代码面试指南》第五章 字符串问题 去掉字符串中连续出现k 个0 的子串
题目 去掉字符串中连续出现k 个0 的子串 java代码 package com.lizhouwei.chapter5; /** * @Description: 去掉字符串中连续出现k 个0 的子串 ...
- 【leetcode刷题笔记】Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters. For example, ...
- 《机器学习实战》学习笔记第五章 —— Logistic回归
一.有关笔记: 1..吴恩达机器学习笔记(二) —— Logistic回归 2.吴恩达机器学习笔记(十一) —— Large Scale Machine Learning 二.Python源码(不带正 ...
- EntityFramework 学习 一 实体类型
我们为已存在的数据库创建EDM,EDM包含与数据库中表对应的实体.EF中有两种实体类型 POCO entity dynamic proxy entity POCO Entity (Plain Old ...
- SpringCloud-服务的消费者(rest+ribbon)
SpringCloud-服务的消费者(rest+ribbon) 在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的.Spring Cloud有两种服务调用 ...
- JavaWeb -- Cookie应用实例 -- 购物历史记录
1. 页面一:主页面 页面二: 详细显示页面 Demo2 负责页面一, 显示商品清单和历史记录 Demo3负责页面二 ...