Python 标准库之 time 模块
time 是 Python 标准库中处理时间的模块,可以实现很多有关时间的操作,比如获取当前时间、格式化时间、时间戳转换等等。
获取当前时间
获取当前具体时间可以使用 time 模块中的 time() 函数,返回从 1970 年 1 月 1 日至今的秒数。
import time
current_time = time.time()
print(current_time)
上述代码输出类似于:1600272879.639106。
格式化时间
format() 方法可以让我们将时间以自己想要的格式展示出来。常见的字符串format占位符有:
- %Y : 年份,例如 2020;
- %m : 月份,例如 09;
- %d : 日期,例如 16;
- %H : 小时,例如 14,这是 24 小时制的,如果我们要展示 12 小时制的小时数,可以使用 %I;
- %M : 分钟,例如 21;
- %S : 秒数,例如 50。
import time
current_time = time.time()
local_time = time.localtime(current_time)
formatted_time = time.strftime('%Y年-%m月-%d日 %H:%M:%S', local_time)
print(formatted_time)
上述代码输出类似于:2020年-09月-16日 16:42:59。
时间戳的转换
时间戳是指时间从 1970 年 1 月 1 日 0 时 0 分 0 秒开始到现在所经过的秒数。
如果想让时间戳转换为本地具体时间,可以用 localtime() 函数。
import time
timestamp = 1600272879.639106
local_time = time.localtime(timestamp)
formatted_time = time.strftime('%Y年-%m月-%d日 %H:%M:%S', local_time)
print(formatted_time)
上述代码输出类似于:2020年-09月-16日 16:42:59。
如果想让具体时间转换为时间戳,可以用 mktime() 函数。
import time
formatted_time = '2020年-09月-16日 16:42:59'
local_time = time.strptime(formatted_time, '%Y年-%m月-%d日 %H:%M:%S')
timestamp = time.mktime(local_time)
print(timestamp)
上述代码输出类似于:1600272879.0。
示例说明
下面模拟一个爬虫程序,获取某个网页的访问时间和具体时间,并将时间戳转换为本地时间格式。
import time
import requests
url = 'https://www.baidu.com'
response = requests.get(url)
current_time = time.time()
local_time = time.localtime(current_time)
formatted_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time)
print(f'已访问网页:{url}\n访问时间:{current_time}\n具体时间:{formatted_time}')
上述代码输出类似于:
已访问网页:https://www.baidu.com
访问时间:1603960094.099041
具体时间:2020-10-29 16:28:14
假如我们已经有了某个特定时间点的时间戳,可以将其转换为本地具体时间。
import time
timestamp = 1603960094.099041
local_time = time.localtime(timestamp)
formatted_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time)
print(f'时间戳:{timestamp} 转换为本地时间:{formatted_time}')
上述代码输出类似于:时间戳:1603960094.099041 转换为本地时间:2020-10-29 16:28:14。