python中最常用的三个处理时间的库:time、datetime、calendar。
本文主要讲解 time 的用法。
先上目录
一、time模块的作用
二、time模块表示时间的四种方式
三、四种表示时间的方式之间的转换图
四、time模块一些常用api的用法
一、time模块的作用
时间获取、表达和转换。
二、time模块表示时间的四种方式
时间戳(timestamp)的表现形式:
1581838663.752684
时间对象(struct_time)表现形式 :
time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
默认时间字符串(defaut_time)表示形式:
'Feb 16 2020 07:42:38'
自定义时间字符串(format_time)表示形式:
'2020-02-16 17:37:28'
接下来,详细讲解这四种时间表示方式
(1)timestamp:时间戳表现形式
生成时间戳的例子:
time.time()
(2)struct_time:时间对象表现形式
生成时间对象的例子:
time.strptime("30 Nov 00", "%d %b %y")
(3)format_string:自定义时间字符串表现形式
生成自定义时间字符串的例子:
time.strftime('%b %d %Y %H:%M:%S', time.gmtime(time.time()))
(4)defaut_string:默认时间字符串表现形式
生成默认时间字符串的例子:
time.asctime()
默认以 %a %b %d %H:%M:%S %Y 形式展示
三、四种表示时间的方式之间的转换图
format_string、struct_time、timestamp的互相转换如下图所示:
defaut_time、struct_time、timestamp的相互转换如下图所示:
四、time模块一些常用api的用法
(1)time.asctime(t)
说明:
接受时间元组并返回 默认时间字符串(defaut_time)的形式, t 代表元组(下面的内容不再做此说明)
形如:"Sun Jun 20 23:21:05 1993" (1993年6月20日 周日 23时21分05秒)
例子:
注意,传入的时间元组的格式是:
t = (tm_year, tm_mon, tm_mday,
tm_hour, tm_min, tm_sec,
tm_wday, tm_yday, tm_isdst)
以下是参数对照表:
指数 | 属性 | 价值观 |
0 |
| (例如,1993年) |
1 |
| 范围[1,12] |
2 |
| 范围[1,31] |
3 |
| 范围[0,23] |
4 |
| 范围[0,59] |
5 |
| 范围[0,61]; 见(2)中 |
6 |
| 范围[0,6],星期一为0 |
7 |
| 范围[1,366] |
8 |
| 0、1或-1;见下文 |
不适用 |
| 时区名称的缩写 |
不适用 |
| 以秒为单位偏移UTC以东 |
(2)time.time()
说明:返回当前时间的时间戳(1970纪元后经过的浮点秒数)
例子:
(3)time.sleep(secs)
说明:推迟调用线程的运行,secs指秒数。
例子:
(4)time.ctime(secs)
说明:作用相当于asctime(localtime(secs)),未给参数相当于asctime()
例子:
(5)time.localtime([secs]
说明:
不传入参数的话,返回当前时间的时间对象(struct_time);
传入时间戳参数的话,返回指定时间时间对象。
例子:
(6)time.strftime(format, t)
说明:
接收以时间对象(struct_time),并返回以自定义字符串所表示的当地时间,格式由 format 决定。
例子:
一般习惯格式化成:%Y-%m-%d %H:%M:%S
拓展: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 当前时区的名称
%% %号本身
(7)time.strptime(string, format)
说明:根据 format 的格式把一个时间字符串解析为时间元组。
例子:
(8)time.mktime(string, format)
说明:接受时间对象并返回时间戳(1970纪元后经过的浮点秒数)。
例子:
(9)time.gmtime([secs])
说明:接收时间戳并返回时间对象
例子:
(10)time.process_time()
说明:返回当前进程执行 CPU 的时间总和,不包含睡眠时间。
例子:
(11)
time.perf_counter()
说明:返回计时器的精准时间(系统的运行时间),包含整个系统的睡眠时间。
例子:
(10)和(11)常常用来计算程序的执行耗时。
假如说,你平时用的是 jupyter,还有一个更简单的方式计算程序执行耗时。
那就是 %timeit。
例子:
是不是特别方便呢?
总结一下
比较常用的api有
time.time() | 获取当前时间戳 |
time.localtime() | 获取当前时间对象 |
time.gmtime() | 时间戳转时间对象 |
time.mktime() | 时间对象转时间戳 |
time.strftime() | 时间对象转自定义时间字符串 |
time.strptime() | 自定义时间字符串转时间对象 |
time.sleep() | 延时 |
关于作者
github:https://github.com/GitDzreal93/dev-tester