1. python的time模块介绍
time模块是Python内置的处理日期和时间的模块,它提供了一些函数来处理时间和日期,包括获取当前时间、时间格式化、计算时间差等等。
- 1.1. 时间获取和时间戳操作
time模块提供了time()函数来获取当前时间,也提供了几个对时间戳进行操作的函数,比如mktime()、gmtime()等。
- 1.2. 时间格式化
time模块通过strftime()函数可以根据指定的格式将时间格式化为字符串,常用的格式化字符有%d、%m、%Y、%H、%M、%S等。
- 1.3. 时间转换
time模块提供了strptime()函数,可以将时间字符串按照指定的格式转换为时间元组;还有asctime()、ctime()等函数,将时间元组转换为可读的时间格式。
- 1.4 睡眠
time模块提供了sleep()函数来实现线程的暂停,可以用于实现一些定时操作
- 1.5 时间操作
time模块提供了一些函数来进行时间操作,如clock()函数可以返回指定操作的CPU时间;还有一些计时器的简单实现,如perf_counter()、timeit()等
2. python 关于时间获取和时间戳的操作
2.1 time.time() 获取当前时间的时间戳
time()
函数用于获取当前时间的时间戳,即从 "1970 年 1 月 1 日 00:00:00" UTC 到当前时间的秒数。
import time
timestamp = time.time()
print(f"当前时间戳是:{timestamp}")
输出:
当前时间戳是:1679160892.8581994
2.2 time.localtime() 将当前时间转换为本地时间(返回时间元组)
localtime()
函数用于将当前时间转换为本地时间。它返回一个包含当前日期和时间的 struct_time 对象。
import time
local_time = time.localtime()
print(f"当前本地时间是:{local_time}")
输出:
当前本地时间是:time.struct_time(tm_year=2023, tm_mon=3, tm_mday=19, tm_hour=1, tm_min=35, tm_sec=13, tm_wday=6, tm_yday=78, tm_isdst=0)
2.3 time.gmtime()将当前时间转换为 UTC 时间(返回时间元组)
gmtime()
函数与 localtime()
函数的作用类似,但将当前时间转换为 UTC 时间。它同样返回一个包含当前日期和时间的 struct_time 对象。
import time
utc_time = time.gmtime()
print(f"当前UTC时间是:{utc_time}")
输出:
当前UTC时间是:time.struct_time(tm_year=2023, tm_mon=3, tm_mday=18, tm_hour=17, tm_min=35, tm_sec=42, tm_wday=5, tm_yday=77, tm_isdst=0)
2.4 time.mktime()将一个时间元组转换为时间戳
mktime()
函数用于将一个时间元组转换为时间戳。这个时间元组必须是由 localtime()
、gmtime()
或 strptime()
函数返回的。
import time
local_time = time.localtime()
timestamp = time.mktime(local_time)
print(f"本地时间:{local_time},时间戳:{timestamp}")
输出:
本地时间:time.struct_time(tm_year=2023, tm_mon=3, tm_mday=19, tm_hour=1, tm_min=36, tm_sec=2, tm_wday=6, tm_yday=78, tm_isdst=0),时间戳:1679160962.0
2.5 time.asctime(local_time)将时间元组转换为可读性的时间字符串
asctime()
函数用于将时间元组转换为可读性的时间字符串,格式为 "Mon Sep 30 07:06:05 2019"。参数是一个表示时间的元组,如由 localtime()
或者 gmtime()
函数返回的对象
import time
local_time = time.localtime()
time_string = time.asctime(local_time)
print(f"当前时间字符串是:{time_string}")
输出:
当前时间字符串是:Sun Mar 19 01:32:05 2023
2.6 time.ctime(timestamp)将时间戳转换为可读性的时间字符串
ctime()
函数用于将时间戳转换为可读性的时间字符串,格式与 asctime()
相同。如果不传参数,则默认输出当前时间字符串。
import time
timestamp = time.time()
time_string = time.ctime(timestamp)
print(f"当前时间字符串是:{time_string}")
输出:
当前时间字符串是:Sun Mar 19 01:34:17 2023
3. python 关于时间格式化的操作
时间格式化是指将日期或时间按照指定的格式进行输出或显示。Python中时间模块提供了多个用于时间格式化的函数,下面介绍一些常用的函数及其使用方法
3.1 time.strftime 将时间对象转换为指定格式的字符串
strftime()
函数用于将时间对象转换为指定格式的字符串。其中,日期和时间格式化字符串的占位符和含义如下:
格式符 | 含义 |
%Y | 年 |
%m | 月 |
%d | 日 |
%H | 时 |
%M | 分 |
%S | 秒 |
%a | 星期的简称 |
%A | 星期的全称 |
%b | 月份的简称 |
%B | 月份的全称 |
%c | 日期和时间 |
%x | 日期(不含时间) |
%X | 时间(不含日期) |
import time
local_time = time.localtime()
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print(f"当前时间格式化字符串是:{formatted_time}")
输出:
当前时间格式化字符串是:2023-03-19 01:42:56
3.2 time.strptime 将符合格式的字符串转换为时间对象
strptime()
函数用于将符合格式的字符串转换为时间对象。它的第一个参数是需要转换的字符串,第二个参数是指定的日期和时间格式化字符串。
import time
time_string = "2022-01-04 15:30:00"
time_obj = time.strptime(time_string, "%Y-%m-%d %H:%M:%S")
print(f"转换后的时间对象为:{time_obj}")
输出:
转换后的时间对象为:time.struct_time(tm_year=2022, tm_mon=1, tm_mday=4, tm_hour=15, tm_min=30, tm_sec=0, tm_wday=1, tm_yday=4, tm_isdst=-1)
4 python 关于时间转换的操作
Python的time模块还提供了一些函数来进行时间转换,如将时间字符串按照指定的格式转换为时间元组,或将时间元组转换为可读的时间格式等。下面介绍一些比较常用的函数及其使用方法
4.1 time.strptime将时间字符串按照指定的格式转换为时间元组
strptime()
函数用于将时间字符串按照指定的格式转换为时间元组。它的第一个参数是需要转换的时间字符串,第二个参数是指定的日期和时间格式化字符串。
import time
time_str = "2022-01-05 14:30:00"
time_struct = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print(f"转换后的时间元组是:{time_struct}")
输出:
转换后的时间元组是:time.struct_time(tm_year=2022, tm_mon=1, tm_mday=5, tm_hour=14, tm_min=30, tm_sec=0, tm_wday=2, tm_yday=5, tm_isdst=-1)
4.2 time.mktime接收时间元组,并将其转换为时间戳
mktime()
函数接收一个时间元组,并将其转换为时间戳。
import time
time_struct = time.strptime("2022-01-05 14:30:00", "%Y-%m-%d %H:%M:%S")
timestamp = time.mktime(time_struct)
print(f"时间戳是:{timestamp}")
输出:
时间戳是:1641364200.0
4.3 time.asctime接收时间元组,并返回一个可读的时间字符串
asctime()
函数接收一个时间元组,并返回一个可读的时间字符串,格式为"Www Mmm dd hh:mm:ss yyyy"。
import time
time_struct = time.strptime("2022-01-05 14:30:00", "%Y-%m-%d %H:%M:%S")
time_string = time.asctime(time_struct)
print(f"转换后的时间字符串是:{time_string}")
输出:
转换后的时间字符串是:Wed Jan 5 14:30:00 2022
4.4 time.ctime 接收一个时间戳,并返回对应的可读的时间字符串
ctime()
函数接收一个时间戳,并返回对应的可读的时间字符串。
import time
timestamp = time.time()
time_string = time.ctime(timestamp)
print(f"当前时间字符串是:{time_string}")
输出:
当前时间字符串是:Sun Mar 19 01:53:54 2023
4.5 time.strftime根据指定的格式将时间元组格式化为字符串
strftime()
函数可以根据指定的格式将时间元组格式化为字符串
import time
time_struct = time.strptime("2022-01-05 14:30:00", "%Y-%m-%d %H:%M:%S")
time_string = time.strftime("现在是 %Y 年 %m 月 %d 日 %H:%M:%S", time_struct)
print(f"转换后的时间字符串是:{time_string}")
5. python 关于睡眠的操作
Python中的time模块还提供了一些函数可以实现程序的等待或睡眠,以延迟指定的时间间隔来控制程序的执行速度或顺序。下面介绍一些比较常用的函数及其使用方法
5.1 time.sleep用于让程序暂停指定的时间
sleep()
函数用于让程序暂停指定的时间,单位为秒。
import time
print("开始执行程序")
time.sleep(3)
print("3秒后,程序继续执行")
5.2 time.perf_counter()
perf_counter()
函数可以返回当前系统的CPU时间,可以被用作基准时间。我们可以在某个程序处理完成之后重新计算一次CPU时间,来获得程序处理的实际时间。
import time
start_time = time.perf_counter()
# 执行某个操作,比如循环1亿次
for i in range(100000000):
pass
end_time = time.perf_counter()
print(f"处理1亿次操作,用时{end_time - start_time}秒")
输出:
处理1亿次操作,用时5.3497827秒
5.3 time.process_time()
process_time()
函数返回当前进程执行 CPU 的时间总量,单位为秒。与 perf_counter()
不同的是,process_time()
不包括睡眠时间。
import time
start_time = time.process_time()
# 执行某个操作,比如循环1亿次
for i in range(100000000):
pass
end_time = time.process_time()
print(f"处理1亿次操作,用时{end_time - start_time}秒")
输出:
处理1亿次操作,用时4.96875秒