> 文章列表 > python常用库之time库

python常用库之time库

python常用库之time库

目录

  • 一、前言
  • 二、time()函数
  • 三、localtime()和gmtime()函数
  • 四、strftime() 、asctime()、mktime()函数
    • (一)strftime()函数
    • (二)asctime()函数
    • (三)mktime()函数
  • 五、ctime()函数
  • 六、striptime()函数
  • 七、sleep()函数
  • 八、时间计算

一、前言

  程序开发中,根据时间选择不同处理方式的场景非常多,例如游戏的防沉迷系统、外卖平台的店铺营业状态管理等。Python中内置了一些与时间处理相关的库,如time、datatimecalendar
  time是最基础的时间处理库,该库本质上是一个模块,它包含的所有内容都定义在time.py文件中。

time库中的常用函数

  • time()
  • localtime()
  • gmtime()
  • strftime()
  • asctime()
  • ctime()
  • strptime()
  • sleep()

二、time()函数

  time()函数返回 以浮点数表示的从世界标准时间的1970年1月1日的00:00:00开始到现在的总秒数,也就是时间戳

#使用time()函数获取当前时间的时间戳
import time
print(time.time())		#获取时间戳

三、localtime()和gmtime()函数

  以时间戳的形势表示的时间是一个浮点数。python可以通过localtime函数()和gmtime()函数可以获取结构化时间

#语法格式:
localtime([secs])
gmtime([secs])

  secs参数是一个表示时间戳的浮点数,若不提供该参数,默认以time()函数获取的时间戳作为参数。
  localtime()函数和gmtime()都可以将时间戳转换为以元组表示的事件对象(struct_time),但localtime()得到的是当地时间,gmtime()得到的是世界统一时间(Coordinated Universal Time,缩写UTC)。

#使用localtime()函数获取时间
import time
print(time.localtime())
print(time.localtime(34,54))#使用gmtime()函数获取时间
import time
print(time.gmtime())
print(time.gmtime(34,54))
元素 含义 取值
tm_year 4位数字
tm_mon 1~12
tm_mday 1~31
tm_hour 0~23
tm_min 0~59
tm_sec 0~60/61(61时闰秒)
tm_wday 一周的第几日 0~6(0为周一)
tm_yday 一年的第几日 1~366(366为儒略历)
tm_isdst 夏令时 1:夏令时;0:非夏令时;-1:不确定

四、strftime() 、asctime()、mktime()函数

  无论是采用浮点数形式还是元组形式表示的时间,其实都不符合人们的认知习惯。为了方便人们理解时间数据,Python提供了用于输出格式化时间字符串的strftime() 和 asctime()函数.

(一)strftime()函数

  strftime()借助时间格式控制符来输出格式化的时间字符串。

语法格式
strftime(format[ , t ])

  format是指代时间格式的字符串,参数t为structural_time对象,默认为当前时间,即localtime()函数返回的时间,该参数可以省略。

# 使用strftime()返回格式化的信息时间
import time
print(time.strftime('%a,%d %b %Y %H:%M:%S'))
#  运行结果
Tue,18 Apr 2023 152725

  若只使用部分时间格式控制符,可仅对时间信息中的相关部分进行格式化与输出。

# 只设定控制时分秒的3个格式符
import time
print(time.strftime('%H:%M:%S'))
# 运行结果
Tue,18 Apr 2023 152725

(二)asctime()函数

  asctime()函数用于输出格式化的时间字符串,但它只将struct_time对象转换为’Tue,18 Apr 2023 15:27:25’这种形式。

语法格式
asctime([ t ])

  参数t 与strftime()函数的参数t意义相同

import time
print(time.asctime())
gmtime = time.gmtime()
print(time.asctime(gmtime))
# 运行结果
Tue Apr 18 15:43:06 2023
Tue Apr 18 07:43:06 2023

(三)mktime()函数

  mktime()函数将struct_time时间对象t转换为时间戳,t代表当地时间。

# 示例代码
import time
t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
secs = time.mktime( t )
print ("time.mktime(t) : %f" %  secs)
print ("asctime(localtime(secs)): %s" % time.asctime(time.localtime(secs)))
# 运行结果
time.mktime(t) : 1234861418.000000
asctime(localtime(secs)): Tue Feb 17 17:03:38 2009
时间格式控制符 说明
%Y 四位数的年份,取值范围为0001~9999
%m 月份(01~12)
%d 月中的一天
%B 本地完整的月份名称,比如January
%b 本地简化的月份名称,比如Jan
%a 本地简化的周日期
%A 本地完整的周日期
%H 24小时制小时数(0~23)
%l 12小时制小时数(1~12)
%p 上下午,取值为AM或PM
%M 分钟数(00~59)
%S 秒(00~59)

五、ctime()函数

  ctime()函数用于将一个时间戳(以s为单位的浮点数)转换为“Tue Apr 18 07:43:06 2023”这种形式(结果同time.asctime()),若该函数未接收到参数,则默认以time.time()作为参数。

# 示例
import time
print(time.ctime())
print(time.ctime(34.56))
# 运行结果
Tue Apr 18 17:20:50 2023
Thu Jan  1 08:00:34 1970

六、striptime()函数

  striptime()函数用于将格式化的时间字符串转化为struct_time,该函数是strftime()函数的反向操作。

语法格式:
striptime(string,format)

  参数string表示格式化的时间字符串,format表示时间字符串的格式,string和format格式必须相统一
  使用strptime()函数将格式化的时间字符串转化为struct_time。

七、sleep()函数

  sleep()函数可让调用该函数的程序进行睡眠状态,即让其暂时挂起,等待一定时间后,再继续执行。sleep()函数接收一个以s为单位的浮点数作为参数,使用该参数控制进程或线程挂起的时长。

# 示例代码
import time
print('开始')
time.sleep(3.5)
print('结束')
# 运行结果
开始结束

八、时间计算

  时间计算通常是指时间的加减。时间可以时间戳形式进行加减运算。

# 示例代码
import time
time_a =time.time()
time.sleep(3.5)
time_b=time.time()
print(time_a +time_b)
print(time_b -time_a)
# 运行结果
3363625416.0357375
3.5003199577331543

  对时间戳形式表示的时间进行计算,在计算之前可以先将其转换为时间戳的形式。
python常用库之time库