时间模块
Python中有很多方便我们处理时间信息的模块
- time模块
- datetime 模块
- pytz模块
- dateutil模块
这里我们着重介绍的是前两种
time模块
-
返回当前时间于 Unix时间 (1970.1.1 00:00:00)经过的秒数
-
返回值也称作时间戳,是一个浮点数类型
time.time()
-
将时间戳秒数转换为表示本地时间的时间元组
-
如果没有传入参数,则直接返回当前本地时间的时间元组
time.localtime(seconds)
时间元组:(tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)
tm_wday:从0开始,表示星期几
<font color=#6495ED>**tm_yday**</font>:第几天
tm_isdst:夏令时的决定旗标
- 推迟程序的运行,参数为推迟的秒数
time.sleep(seconds)
- 一般用来衡量程序的耗时
time.clock()
win:
第一次调用:浮点数形式返回当前CPU运行时间
第二次调用:浮点数形式返回距离上次调用该函数至此次的时间间隔
Linux:
浮点数返回当前的程序执行时间
time.asctime(tupletime)
- 将一个时间元组返回为一个可读形式字符串
>>> time.asctime(time.localtime())
'Fri Feb 2 22:26:36 2018'
- 将时间元组根据指定格式返回为可读字符串
time.strftime( format [, tuple] )
- 将可读字符串根据格式返回为时间元组
time.strptime( string, format )
格式:
- %Y:年份
- %m:月份
- %d:天数
- %H:小时
- %M:分钟
- %S:秒
- %x:天/月/年
- %X:当前 时:分:秒
- %A:星期 (全称)
- %a:星期 (缩写)
>>> time.strftime('%Y %m %d',time.localtime())
'2018 02 02'
>>> time.strptime('2018 02 02','%Y %m %d')
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=33, tm_isdst=-1)
datetime模块
子模块介绍:在datetime模块分别包含了以下三个模块进行时间处理
-
datetime.datetime:处理年月日,时分秒
-
datetime.date:处理年月日
-
datetime.time:处理时分秒
- 获取当前时间,包含年月日,时分秒,微秒,返回类型为datetime.datetime
datetime.datetime.now()
datetime.datetime.today()
- 返回当前时间,只包含年月日
datetime.date.today()
- 表示时间差
datetime.datetime.delta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2018, 2, 10, 17, 12, 18, 220858)
>>> de = datetime.timedelta(days=30)
>>> de + now
datetime.datetime(2018, 3, 12, 17, 12, 18, 220858)
一些时间实例中的函数:
res = datetime.datetime.today()
res = datetime.date.today()
res = datetime.time(10,20,10)
一些通用的实例函数,在下列举:
res.year:年
res.month:月
res.day:日
res.hour: 时
res.minute:分
res.second:秒
- 获取当前时间戳
res.timestamp()
- 获取当前时间元组
res.timetuple()
- 返回一个字符串日期
res.ctime()
- 将指定值替换后返回一个新的date数据
res.replace(year, month, day, hour, minute, second)
- 返回一个时间元组
res.timetuple()
- 从0开始返回当前时间是星期几,星期一为0,星期日为6
**res.weekday() **
- 以ISO时间标准格式从1开始返回当前时间是星期几;星期一为1,星期日为7
res.isoweekday()
- ISO表示格式的时间元组,(年,月,日)
res.isocalendar()
- 返回 一个**'YYYY-MM-DD'的字符串格式**
res.isoformat()
构造自己的时间
datetime.datetime(2018, 2, 2, 23, 11, 2, 9999)
参数位置分别为:年 月 日 时 分 秒 微秒
返回值: datetime.datetime类型