Python标准库之time库的使用教程详解

  • Post category:Python

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。