一、功能:
time模块主要包含各种提供日期、时间功能的类和函数。
1.把日期、时间格式转化为字符串
2.将日期、时间从字符串恢复

二、time.struct_time类中各种属性

字段名

字段含义

举例

tm_year


如2019、2020等(表示年份)

tm_mon


范围:1~12

tm_mday


范围:1~31

tm_hour


范围:0~23

tm_min


范围:0~59

tm_sec


范围:0~59

tm_wday


注意:周一为0,范围:0~6

tm_yday

一年内第几天

如:183为一年内的第183天,范围:1~366

tm_isdst

夏令时

0、1或-1

三、time模块内常用的功能函数如下:

函数

使用

time.asctime()

将时间元组或struct_time转换为时间字符串,如果不指定参数t,则默认转换当前时间。

time.ctime()

将以秒数(时间戳)代表的时间转换为时间字符串。

time.gmtime(])

将以秒数(时间戳)代表的时间转换为UTC时区(0时区)当前时间的struct_time对象,如果不传入参数,则使用当前时间。

time.localtime()

将以秒数(时间戳)代表的时间转换为本地当前时间的struct_time对象,如果不传入参数,则使用当前时间。

time.mktime()

该函数是localtime的反转函数,用于将struct_time对象或元组代表的时间转换为从1970年1月1日0点整到现在过了多少秒。

time.perf_counter()

返回性能计数器的值。以秒数为单位。

time.process_time()

返回当前进程使用CPU的时间。以秒数为单位。

time.sleep(secs)

暂停secs秒,就是让程序睡觉,啥都不做,就等secs秒

time.strftime()

将时间元组或struct_time对象格式化为指定格式的时间字符串。如果不指定参数t,则默认使用当前时间,格式例如:time.strftime(’%Y-%m-%d %H:%M:%S’)

time.strptime()

改函数与strftime互逆,可以将字符串格式的时间解析成struct_time对象。

time.time()

返回从1970年1月1日0点整到现在过去了多少秒。

time.timezone

返回本地时区的时间偏移,以秒数为单位,注意:

time.tzname

返回本地时区名字,注意:tzname后面是没有小括号的,加上小括号会报错。

补充:
time模块中的strfiname()和strptime()两个函数互为逆函数,其中strftime()用于将struct_time对象或时间元组转换为时间字符串,而strptime()函数用于讲时间字符串转换为struct_time对象。这两个函数都涉及编写格式模板,下面列出了python时间格式字符串所支持的指令

指令

含义

%a

本地化的星期几的缩写名,例如Sun代表星期天

%A

本地化的星期几的完整名, 例如Sunday

%b

本地化的月份的缩写名,例如Jan代表一月

%B

本地化的月份的完整名,例如January代表一月份

%c

本地化的日期和时间的表示形式,例如:print(time.strftime(’%c’)), 输出结果为:Thu Jul 2 11:34:10 2020,表示的是:周 月 日 时:分:秒 年

%d

表示一个月中第几天的数值,范围:01~31

%H

表示24小时制的小时,范围:00~23

%I

表示12小时制的小时,范围:01~12

%j

表示一年中的第几天, 范围:001~366

%m

表示月份的数值,范围:01~12

%M

表示分钟的数值,范围:00~59

%p

表示上午或下午本地化方式,当使用strptime()函数并使用%I指令解析小时时,%p只影响小时字段

%S

表示分钟的数值,范围:00~61 ,没有错,该范围确实是00-61,找表示闰秒的时间戳时有效,而61则是由于一些历史原因造成的

%U

表示一年中的第几周,以星期天为一周的第一天,范围:00~53,一年 中的第一个星期天为第一周,当使用strptime()函数解析时间字符串时,自由同时指定了星期几和年份该指令才会生效

%w

表示星期几的数值,范围 -6 ,其中 代表周日

%W

表示一年中的第几周,以星期天为一周的第一天,范围:00~53,一年 中的第一个星期天为第一周,当使用strptime()函数解析时间字符串时,自由同时指定了星期几和年份该指令才会生效

%x

本地化的日期的表示形式,例如:07/02/20

%X

本地化的时间的表不形式,例如:07/02/20

%y

年份的缩写,范围:00~99,例如2020就简写成20

%Y

年份的完整形式。如 2020

%z

显示时区偏移

%Z

显示时区名(如果时区不存在,则显示未空)

%%

用于表示%符号

实例:

import time
# 将当前时间转换为字符串
print(time.asctime())
# 将指定时间转换为时间字符串,时间元组的后面3个元素没有设置
print(time.asctime((2020, 12, 4, 12, 45, 3, 0, 0, 0))) #表示将2020年12月4日12时45分3秒转换为时间字符串

# 将以秒数代表的时间转换为时间字符串,转换为本地时间
print(time.ctime(30)) # Thu Jan 1 08:30 1970 (本地时间)

# 将以秒数代表的时间转换为struct_time对象,显示的是在0时区的时间
print(time.gmtime(30)) 

#将当前时间转换为struct_time对象, 显示的是在0时区的时间
print(time.gmtime())

# 将以秒数代表的时间转换为代表当前时间的struct_time对象,显示的是本地时间
print(time.localtime(30))

# 将以秒数代表的时间转换为代表当前时间的struct_time对象,显示的是本地时间
print(time.localtime())

# 将元组格式的时间转换为以秒数代表的时间(转换为时间戳)
print(time.mktime((2020, 12, 24, 10, 15, 15, 0, 0, 0)))

#返回性能计数器的值
print(time.perf_counter())

# 返回当前进程使用CPU的时间
print(time.process_time())

# 使程序暂停3秒(睡3秒)
print(time.sleep(3))

# 将当前时间转换为指定格式的字符串
print(time.strftime('%Y-%m-%d %H:%M:%S'))

Time = '2020年7月2日'
# 将指定时间字符串转换恢复成struct_time第次昂
print(time.strptime(Time, '%Y年%m月%d日'))

# 返回从1970年1月1日0点整到现在过了多少秒
print(time.time())

# 返回本地时区的时间偏移,以秒为单位
print(time.timezone) # 在中国东八区输出-28800