一、功能:
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