您的位置:

time函数的用法详解

在编程开发中,时间的概念很重要,而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中处理时间相关问题的重要工具之一,熟练掌握其用法能带来更加高效的编程体验。