在编程开发中,时间的概念很重要,而time函数就是处理时间相关问题的重要函数之一。本文将从多个方面对time函数用法作详细阐述,包括时间戳相关、格式化输出等问题,帮助你更好地掌握time函数。
一、时间戳相关
时间戳是指从1970年1月1日0时0分0秒起至现在的总毫秒数,它是时间处理中常用的一个重要概念。在Python中,可以通过time函数来获取当前时间的时间戳:
import time timestamp = time.time() print('当前时间戳为:', timestamp)
上述代码使用了time.time()函数来获取当前时间的时间戳,并将其输出到控制台。该函数返回的是一个浮点数类型的值。
程序输出结果如下:
当前时间戳为: 1616426628.304026
除了上述方式获取当前时间戳外,还可以使用time()传入一个时间元组来获取指定时间的时间戳,该函数的完整形式如下:
time.mktime(t)
其中,参数t是一个时间元组,表示需要转化成时间戳的时间。可以通过time.struct_time类来生成一个时间元组,常用的方法如下:
import time #获取当前时间 localtime = time.localtime(time.time()) print('当前日期:', localtime) #格式化输出日期 print(time.strftime('%Y-%m-%d %H:%M:%S', localtime)) #将日期转化成时间戳 timestamp = time.mktime(localtime) print('当前时间戳为:', timestamp)
上述代码通过localtime()函数获取了当前系统时间,并使用strftime()函数格式化输出了日期字符串,最后使用mktime()函数将日期转换成了时间戳。程序输出结果如下:
当前日期:time.struct_time(tm_year=2021, tm_mon=3, tm_mday=22, tm_hour=10, tm_min=49, tm_sec=7, tm_wday=0, tm_yday=81, tm_isdst=0) 2021-03-22 10:49:07 当前时间戳为: 1616414947.0
可以看到,经过多次转换,最终得到的时间戳结果与之前获取当前时间戳的方法相同。
二、时间格式化输出
除了获取时间戳外,time函数还可以进行时间格式化输出。Python提供了丰富的时间格式化方式,现在我们来看看常用的一些方式:
1. strftime格式化方式
strftime()函数可以将时间元组转换为指定格式的字符串进行输出,具体用法如下:
import time #获取当前时间 localtime = time.localtime(time.time()) # 格式化日期 print(time.strftime('%Y-%m-%d %H:%M:%S', localtime)) print(time.strftime('%a %b %d %H:%M:%S %Y', localtime))
如上例所示,可以根据指定的格式化标签来格式化输出日期字符串。常用的标签有:
- %Y:四位数的年份
- %m:两位数的月份(01-12)
- %d:两位数的日(01-31)
- %H:24小时制的小时(00-23)
- %M:两位数的分钟(00-59)
- %S:两位数的秒(00-59)
- %a:本地化的缩写星期几名称
- %A:本地化的完整星期几名称
- %b:本地化缩写月份名称
- %B:本地化完整月份名称
- %c:本地化的日期和时间表示法
- %j:一年中的第几天(001-366)
- %p:本地化的AM或PM标记
- %U:当年的第几周,从第一个星期日开始算(00-53)
- %w:星期几的数字表示(0-6),0表示周日
- %W:当年的第几周,从第一个星期一开始算(00-53)
- %x:本地化的日期表示法
- %X:本地化的时间表示法
- %y:两位数的年份表示(00-99)
- %Z:本地化时区名称
- %%:文本%
上述代码中输出了两个日期字符串,第一个是标准日期格式,第二个是一般情况下使用的日期格式。程序输出结果如下:
2021-03-22 15:47:16 Mon Mar 22 15:47:16 2021
2. strptime格式化方式
strptime()函数与strftime()函数相反,可以将字符串格式的日期转换成对应的时间元组。常用的格式化标签与strftime()函数基本相同:
import time #将字符串格式的日期时间转化成时间元组 str_time = '2021-3-22 20:30:00' time_tuple = time.strptime(str_time, '%Y-%m-%d %H:%M:%S') print(time_tuple)
上述代码将字符串形式的日期转换成时间元组,输出结果如下:
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=22, tm_hour=20, tm_min=30, tm_sec=0, tm_wday=0, tm_yday=81, tm_isdst=-1)
三、其他时间函数
除了上述提到的time()、localtime()、gmtime()、mktime()、strftime()、strptime()等常见的函数外,time模块还提供了一些其他的时间处理函数。
1. sleep()函数
sleep()函数用于暂停程序的执行,让程序等待一定的时间之后再继续执行。通常情况下,sleep()函数接收一个浮点数或整数类型的参数,表示需要暂停的时间(单位为秒)。下面是一个简单的例子:
import time print('开始执行') time.sleep(2) print('等待2秒后,程序继续执行')
上述代码中,程序在输出“开始执行”之后,使用sleep函数暂停了2秒,等待时间到达之后再输出“等待2秒后,程序继续执行”。程序输出结果如下:
开始执行 等待2秒后,程序继续执行
2. clock()函数
clock()函数用于计算程序执行的时间。在Python3.3之后,clock()函数已经被移除,建议使用使用perf_counter()或process_time()函数替代,如下:
import time #获取程序开始执行的时间 t0 = time.perf_counter() #执行程序 for i in range(100000): pass # 获取程序结束执行的时间 t1 = time.perf_counter() print('程序执行的时间为:', t1 - t0)
上述代码中,我们使用了perf_counter()函数获取了程序开始执行的时间和结束执行的时间,并计算出了程序执行的时间。程序输出结果如下:
程序执行的时间为:0.001331413999983385
结语
本文从时间戳、时间格式化输出和其他时间函数三个方面详细阐述了time函数的用法。time函数是Python中处理时间相关问题的重要工具之一,熟练掌握其用法能带来更加高效的编程体验。