一篇文章带你了解Python标准库——time模块攻略
简介
在Python标准库中,time模块是最常用的模块之一,它提供了与时间相关的功能。该模块几乎可以用于所有的Python版本,并且拓展性很强,可以通过与其他的库组合使用来实现更复杂的功能。
基本用法
时间的表示方式
在Python中,时间可以用整数表示,这个整数表示的时间是从1970年1月1日00:00:00到现在经过了多少秒。通常这个整数就被称为时间戳
(timestamp)。时间戳可以直接用整数表示,也可以使用time()
函数从当前时间中获取。
另外一种时间表示方式是时间元组,它是以元组的形式表示时间的:时间元组 = (年, 月, 日, 时, 分, 秒, 周几, 天数, 是否为夏令时)
。其中,周几的取值范围是0~6,分别表示周一到周日,是否为夏令时是一个布尔值。
常见函数
time模块中包含了很多与时间相关的函数,下面介绍几个常用的函数:
time()
time()
函数用于获取当前时间的时间戳(以秒为单位),它没有参数。
import time
# 获取当前时间的时间戳
t = time.time()
print(t)
输出:
1593314753.0962272
localtime() 和 gmtime()
这两个函数可以将时间戳转换为时间元组,其中localtime()
函数将时间戳转换为当地时间,gmtime()
函数将时间戳转换为格林威治标准时间。
import time
# 获取当前时间的时间戳
t = time.time()
# 将时间戳转换为当地时间
t_local = time.localtime(t)
print(t_local)
# 将时间戳转换为格林威治标准时间
t_gm = time.gmtime(t)
print(t_gm)
输出:
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=28, tm_hour=16, tm_min=6, tm_sec=29, tm_wday=6, tm_yday=180, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=28, tm_hour=8, tm_min=6, tm_sec=29, tm_wday=6, tm_yday=180, tm_isdst=0)
strftime() 和 strptime()
这两个函数可以将时间元组转换为字符串或者将字符串解析成时间元组。
其中,strftime()
函数用于将时间元组转换为字符串,它的第一个参数表示输出字符串的格式,这个格式可以根据自己的需求来定制。而strptime()
函数用于将字符串解析成时间元组,第一个参数表示输入字符串的格式,第二个参数表示要解析的字符串。
下面是一个示例:
import time
# 将时间元组格式化成字符串
t = time.localtime()
str_time = time.strftime("%Y-%m-%d %H:%M:%S", t)
print(str_time)
# 将字符串解析成时间元组
str_time2 = "2020/06/28 16:31:50"
t2 = time.strptime(str_time2, "%Y/%m/%d %H:%M:%S")
print(t2)
输出:
2020-06-28 16:36:55
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=28, tm_hour=16, tm_min=31, tm_sec=50, tm_wday=6, tm_yday=180, tm_isdst=-1)
示例
示例1:计算函数运行时间
在Python中,我们可以使用time()
函数来计算一个函数的运行时间。
import time
def func():
time.sleep(2)
start_time = time.time()
func()
end_time = time.time()
cost_time = end_time - start_time
print("函数执行耗时:%f 秒" % cost_time)
输出:
函数执行耗时:2.002308 秒
示例2:生成随机用户名
有时候我们需要生成随机的用户名。可以使用time()
函数结合random()
函数来实现。
import time
import random
def generate_username():
username = time.strftime("%Y%m%d%H%M%S", time.localtime())
username += str(random.randint(100, 999))
return username
print(generate_username())
输出:
20200628164635224 416
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一篇文章带你了解python标准库–time模块 - Python技术站