python和php常用的时间处理
来源:互联网 发布:淘宝订单体验 编辑:程序博客网 时间:2024/04/30 04:19
在语言中常用的
1、无非时间戳(unix秒数)、
2、格式化字符串
3、便于各类运算的内置时间类型(在python中是时间数组对象、datetime对象)
面向时区、年、月、星期、日的处理通常较为生僻。啦啦啦 东八区比格林威治时间(UTC时间)要早8小时。。。
python的时间处理
不同于int,float,str,python没有包含对应日期和时间的内置类型,不过提供了三个模块。
time模块、datetime模块、calendar模块
python时间日期格式化符号
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
1、time模块
管理时钟时间的函数,绑定底层C库函数。一般用于表示时间的方式有两种:
第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的
第二种以时间数组对象的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同
tm_year=2015,
tm_mon=12,
tm_mday=7,
tm_hour=14,
tm_min=21,
tm_sec=17,
tm_wday=0, (0-6, Monday is 0)
tm_yday=341, (day in the year, 1-366)
tm_isdst=0
time模块的函数就是围绕着这两种时间类型以及格式化字符串之间的转换而进行。
time.time() 返回当前时间戳
返回一个浮点数unix时间戳,精度依赖于平台。不具有可读性。
ctime()可以将一个时间戳转成一个比较难读的时间字符串。各式是:%a %b %d %H:%M:%S %Y
>>> time.ctime(time.time()+30)
'Mon Dec 7 15:03:33 2015’
localtime(…)将时间戳转换成 或者返回当前时间数组
如果seconds参数未输入,则以当前时间为转换标准。
mktime(tuple)时间数组转成时间戳
strftime(format[, tuple])将时间数组转成格式化字符串
>>> time.strftime("%Y-%m-%d",time.localtime())
'2015-12-07'
strptime(string, format) 格式化字符串转成时间数组
time.strptime("2015-12-07","%Y-%m-%d")
time.struct_time(tm_year=2015, tm_mon=12, tm_mday=7, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=341, tm_isdst=-1)
2、datetime模块
datetime模块包含了一些函数和类,用于完成日期和时间解析、格式化、算术运算。datetime类是date与time的结合体包含date和time类的所有信息。
时间类time
日期类date
时间日期类 datetime
时间日期间隔类 timedelta
时区信息对象 tzinfo
time类
time实例包含hour/minute/second/microsecond/tzinfo等属性。
构造方法class datetime.time(hour[, minute[, second[, microsecond[, tzinfo]]]])
>>> t = datetime.time(1,2,3)
>>> t
datetime.time(1, 2, 3)
>>> t.hour
1
>>> t.minute
2
>>> t.second
3
date类
date构造方法 class datetime.date(year, month, day)
实例包含year/month/day属性。
datetime类
datetime类
datetime构造方法
datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]),各参数的含义与date、time的构造函数中的一样。datetime对象支持比较大小。
datetime.now返回一个当前的datetime对象
datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
datetime.utcnow():返回一个当前utc时间的datetime对象;
datetime.fromtimestamp(timestamp[, tz]):时间戳转换成datetime对象,
参数tz指定时区信息,
datetime.utcfromtimestamp(timestamp):根据时间戮创建一个UTC时间的datetime对象
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2015, 12, 9, 18, 10, 50, 769130)
datetime.strptime(date_string, format):将格式字符串转换为datetime对象
>>> datetime.datetime.strptime("2015-12-09 12:00:00", "%Y-%m-%d %H:%M:%S")
datetime.datetime(2015, 12, 9, 12, 0)
t.timetuple() datetime对象转换成时间数组
>>> t = datetime.datetime.now()
>>> t.timetuple()
time.struct_time(tm_year=2015, tm_mon=12, tm_mday=9, tm_hour=18, tm_min=15, tm_sec=43, tm_wday=2, tm_yday=343, tm_isdst=-1)
datetime.utctimetuple() 返回utc时间数组
datetime.strftime(format) datetime对象转成格式字符串
timedelta类
timedelta代表两个datetime之间的时间差 。通过一个datetime和一个timedelta可以计算出另一个datetime。timedelta对象在内部按照日、秒、毫秒来存储。但是它有多个属性,通过构造函数传入。传入之后这些属性会转换成日、秒、毫秒来存储。
>>> t1 = datetime.datetime.now()
>>> t2 = datetime.datetime.now()
>>> t2 - t1
datetime.timedelta(0, 12, 378169)
>>> t1 - t2
datetime.timedelta(-1, 86387, 621831)
>>> t = datetime.timedelta(hours=1)
>>> t
datetime.timedelta(0, 3600)
>>> t.hours
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'datetime.timedelta' object has no attribute 'hours'
>>> t = datetime.timedelta(hours=25,days=1)
>>> t
datetime.timedelta(2, 3600)
python2.7版本以后timedelta对象加入了total_seconds方法用于计算时间间隔的总秒数。
3、calendar模块(暂不讨论)
php的时间处理函数
Y 4位数字年,y为2位数字,如99即1999年
m 数字月份,前面有前导0,如01。n 为无前导0数字月份
d 月份中的第几天,前面有前导0,如03。j 为无前导0的天数
H 24小时格式,有前导0,h为12小时格式
i 分钟格式,有前导0
s 秒格式,有前导0
F 月份,完整的文本格式,例如 January 或者 March
M 三个字母缩写表示的月份,例如 Jan 或者 Mar
w 星期中的第几天,以数字表示,0表示星期天
z 年份中的第几天,范围0-366
W 年份中的第几周,如第32周
G 24小时格式,无前导0,g为对应12小时格式
A 大写上下午,如AM,a为小写
time()返回时间戳
localtime返回时间数组
array(9) {
[0]=>
int(32)
[1]=>
int(26)
[2]=>
int(20)
[3]=>
int(9)
[4]=>
int(11)
[5]=>
int(115)
[6]=>
int(3)
[7]=>
int(342)
[8]=>
int(0)
}
关联数组中不同的键名是:
"tm_sec" - 秒数
"tm_min" - 分钟数
"tm_hour" - 小时
"tm_mday" - 月份中的第几日
"tm_mon" - 年份中的第几个月,从 0 开始表示一月
"tm_year" - 年份,从 1900 开始
"tm_wday" - 星期中的第几天
"tm_yday" - 一年中的第几天
"tm_isdst" - 夏令时当前是否生效
date(format, timestamp)时间戳转换成格式化字符串
echo date(‘Y-m-d',time())
strtotime(timestr, now) 将时间描述字符串转换成时间戳
本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳。
成功则返回时间戳,否则返回 FALSE。
这是正常的。。。
<?php
echo strtotime("2015-07-10 12:10");
echo strtotime("20150710 12:10");
echo strtotime("Wed Dec 9 20:17:44 2015”);
更牛的是。。。都尼玛说人话了
echo(strtotime("now"));
echo(strtotime("3 October 2005"));
echo(strtotime("+5 hours"));
echo(strtotime("+1 week"));
echo(strtotime("+1 week 3 days 7 hours 5 seconds"));
echo(strtotime("next Monday"));
echo(strtotime("last Sunday”));
- python和php常用的时间处理
- Python中datetime的使用和常用时间处理
- python常用的时间处理模块time
- php 时间处理常用函数
- PHP 中常用的时间处理方法 date 函数
- Python的时间、日期和时间戳的处理办法
- PHP 获取今日、昨日、本周、上周、本月的等等常用的起始时间戳和结束时间戳的时间处理类
- PHP 获取今日、昨日、本周、上周、本月的等等常用的起始时间戳和结束时间戳的时间处理类
- PHP 获取今日、昨日、本周、上周、本月的等等常用的起始时间戳和结束时间戳的时间处理类
- python的时间处理
- PHP日期和时间处理
- Python 和js时间处理
- python 日期和时间 处理
- PHP - strtotime time FROM_UNIXTIME UNIX_TIMESTAMP 常用的时间&时间戳处理函数
- 【php】php中日期和时间处理
- Date对象中处理时间和日期的常用方法
- Java常用的时间处理
- 关于时间常用的处理
- nsq源码阅读笔记之nsqd(三)——diskQueue
- leetcode Path Sum
- Android中实现横屏竖屏的切换
- ubuntu linux下编辑更改镜像源
- USACO nocows
- python和php常用的时间处理
- JavaBean与JSON的转换
- Matlab的mapminmax函数说明
- Firemonkey实现iOS程序运行时更改锁定显示方向(LockOrientations)
- sap JCO3.0安装时遇到的问题
- 【Android】Fragment官方中文文档
- 电桥-20151208
- OpenGL的安装与配置
- cocos2dx简介