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
注意:
星期n | python中代表 | |
一 | 0 | |
二 | 1 | |
三 | 2 | |
四 | 3 | |
五 | 4 | |
六 | 5 | |
日 | 6 |