您的位置:首页 > 编程语言 > Python开发

python时间处理模块 datetime time模块 deltetime模块

2016-04-23 17:02 836 查看
1 首先介绍time模块,因为简单
python 自带模块
本人使用time模块,只使用两个函数
time函数和sleep函数

import time
a. time.time() 函数 返回unix时间 常用作两个时间差的计算

b. time.sleep() 休眠多久,精度为子秒(subsecond)

In [90]: t1 = time.time()
In [91]: t1
Out[91]: 1461400225.877932
In [92]: time.sleep(2)
In [93]: t2 = time.time()
In [94]: t2 - t1
Out[94]: 24.2673659324646


2 其他处理时间的场景,本人都是使用datetime模块
python 自带
from datetime import datetime
常用时间场景 #获取当前时间
In [95]: from datetime import datetime
In [96]: now = datetime.now()

#注意类型,时间之间的计算一定要是时间类型,即相同类型之间可以加减
In [97]: type(now)
Out[97]: datetime.datetime
In [98]: now
Out[98]: datetime.datetime(2016, 4, 23, 16, 33, 0, 143269)


a. 常用获取 当前的年份,月份,日期,时,周(注意周的数值,0-6 0表示周一,依次类推)

In [116]: year, month, today, hour, week = (now.year, now.month, now.day, now.hour, now.weekday())
In [117]: year, month, today, hour, week
Out[117]: (2016, 4, 23, 16, 5)


b. ctime()函数 返回可读的字符串格式
In [118]: now.ctime()
Out[118]: 'Sat Apr 23 16:33:00 2016'

c. strftime() 函数 将datetime时间格式,转换成为指定的字符串格式
In [121]: now.strftime('%Y-%m-%d')
Out[121]: '2016-04-23'

返回昨天的unix时间
now= datetime.now()
yesterday = now - timedelta(1)
yest_clock = (datetime.now()  -timedelta(1)).strftime('%s')


d. strptime() 函数,将字符串模式的时间,转化成为datetime格式
In [123]: datetime.strptime('20160101','%Y%m%d')
Out[123]: datetime.datetime(2016, 1, 1, 0, 0)


3 timedelta

来自datetime模块
from datetime import timedelta

作用计算datetime类型时间的一个差值(得到或将来的一个)

常用获取前一天的datetime时间
In [129]: now
Out[129]: datetime.datetime(2016, 4, 23, 16, 33, 0, 143269)
In [130]: now - timedelta(1)
Out[130]: datetime.datetime(2016, 4, 22, 16, 33, 0, 143269)

获取一个小时之前的时间
In [134]: now
Out[134]: datetime.datetime(2016, 4, 23, 16, 33, 0, 143269)


一秒前,一小时前,一天前,一分中之前
但是没有一年前,一个月前勒(这个原因你能想明白的)
In [158]: now - timedelta(seconds=1)
Out[158]: datetime.datetime(2016, 4, 23, 16, 32, 59, 143269)
In [159]: now - timedelta(seconds=1)
Out[159]: datetime.datetime(2016, 4, 23, 16, 32, 59, 143269)
In [160]: now - timedelta(hours=1)
Out[160]: datetime.datetime(2016, 4, 23, 15, 33, 0, 143269)
In [161]: now - timedelta(days=1)
Out[161]: datetime.datetime(2016, 4, 22, 16, 33, 0, 143269)
In [162]: now - timedelta(minutes=1)
Out[162]: datetime.datetime(2016, 4, 23, 16, 32, 0, 143269)


获取上周
In [4]: from datetime import datetime
In [5]: now = datetime.now()
In [6]: from datetime import datetime,  timedelta
In [7]: now = datetime.now()
In [8]: last_week = now -timedelta(weeks=1)
In [9]: now
Out[9]: datetime.datetime(2016, 5, 4, 21, 39, 35, 424140)
In [10]: last_week
Out[10]: datetime.datetime(2016, 4, 27, 21, 39, 35, 424140)


In [12]: now.weekday()
Out[12]: 2


注意:
星期npython中代表
0
1
2
3
4
5
6
本文出自 “崔德华运维打工从业路” 博客,请务必保留此出处http://cuidehua.blog.51cto.com/5449828/1767046
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: