time模块
【一】表示时间的三种方式
-
时间戳表示时间
-
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
-
-
元组(struct_time)(年,月,日,时,分,秒,毫秒,微秒)
-
格式化的时间字符串
-
xx年-xx月-xx日 时:分:秒
-
【二】时间转换
【1】导入时间模块
import time
【2】时间戳
(1)生成时间戳
-
语句:time.time()
#例子
变量名 = time_time()
print(变量名)#输出结果是这样的:1713512356.3627634
#去掉多余的小数就直接转int类型
(2)时间戳转换为时间元组
-
国际时间:time.gmtime(time.time())
变量名 = time.gmtime(time.time())
print(变量名)#输出结果是这样的:time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=7, tm_min=42, tm_sec=16, tm_wday=4, tm_yday=110, tm_isdst=0)
-
本地时间time.localtime(time.time())
变量名 = time.localtime(time.time())
print(变量名)#输出结果是这样的:time.struct_time(tm_year=2024, tm_mon=4, tm_mday=19, tm_hour=15, tm_min=45, tm_sec=53, tm_wday=4, tm_yday=110, tm_isdst=0)
(3)转换为时间字符串
-
转换时间的格式在strftime里面执行的
#正常时间
变量名 = time.strftime('%Y-%m-%d %H:%M:%S')
print(变量名)#2024-04-19 15:51:18
#正常时间
变量名 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
print(变量名)#2024-04-19 15:51:18
#国际时间
变量名 = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
print(变量名)#2024-04-19 07:53:10
(4)转换为时间元组
-
从时间元组中获取指定的属性
-
取出年月日时分秒
-
变量名 = time.localtime()
print(变量名.tm_year)#年
print(变量名.tm_mon)#月
print(变量名.tm_mday) # 当前日
print(变量名.tm_wday) # 当前周
print(变量名.tm_yday) #本年过了多少天
-
Python中时间日期格式化符号
符号 | 含义 | 值 |
%y | 两位数的年份表示 | (00-99) |
%Y | 四位数的年份表示 | (000-9999) |
%m | 月份 | (01-12) |
%d | 月内中的一天 | (0-31) |
%H | 24小时制小时数 | (0-23) |
%I | 12小时制小时数 | (01-12) |
%M | 分钟数 | (00=59) |
%S | 秒 | (00-59) |
%a | 本地简化星期名称 | |
%A | 本地完整星期名称 | |
%b | 本地简化的月份名称 | |
%B | 本地完整的月份名称 | |
%c | 本地相应的日期表示和时间表示 | |
%j | 年内的一天 | (001-366) |
%p | 本地A.M.或P.M.的等价符 | |
%U | 一年中的星期数 | (00-53)星期天为星期的开始 |
%w | 星期 | (0-6),星期天为星期的开始 |
%W | 一年中的星期数 | (00-53)星期一为星期的开始 |
%x | 本地相应的日期表示 | |
%X | 本地相应的时间表示 | |
%Z | 当前时区的名称 | |
%% | %号本身 |
【3】结构化时间
(1)时间戳转换
-
time.mktime()(时间戳-->元组时间戳)
import time
time_str = time.time()#生成时间戳:1713513953.0934687
time_str = time.localtime(time_str)#本地时间
time_str = time.mktime(time_str)#转换
print(time_str)#输出结果是这样的:1713513731.0
(2)结构化输出时间
-
time.strftime() : 格式化输出当前时间
-
结构化时间参数若不传,则显示当前时间
import time
# 格式化当前时间
time_str = time.strftime("%Y-%m-%d %X")
print(time_str) # 2024-04-19 16:08:22
-
格式化当前元组
import time
print(time.localtime(time.time()))
# 格式化当前时间元组
time_local = time.strftime("%Y-%m-%d", time.localtime(time.time()))
print(time_local) # 2024-04-19
(3)将字符串的时间格式转换为时间元组
-
time.strptime()(时间字符串-->时间元组)
# 格式化当前时间
time_str = time.strftime("%Y-%m-%d %X")
print(time_str) # 2024-04-19 16:08:22
time_str = time.strptime("2023-11-24", "%Y-%m-%d")#括号里可以改任意时间
print(time_str) #time.struct_time(tm_year=2023, tm_mon=11, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=328, tm_isdst=-1)
time_local = time.strptime("11/24/2023", "%m/%d/%Y")#括号里可以改任意时间
print(time_local) #time.struct_time(tm_year=2023, tm_mon=11, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=328, tm_isdst=-1)
time_local = time.strptime("11:24:2023", "%m:%d:%Y")#括号里可以改任意时间
print(time_local) #time.struct_time(tm_year=2023, tm_mon=11, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=328, tm_isdst=-1)
(4)将时间元组转换为国际时间格斗
-
time.asctime(结构化时间--> %a %b %d %H:%M:%S %Y串)
import time
time_str = time.asctime(time.localtime(time.time()))
print(time_str)#Fri Apr 19 16:17:31 2024
time_local = time.asctime()
print(time_local)#Fri Apr 19 16:17:31 2024
time_str = time.ctime(time.time())
print(time_str)#Fri Apr 19 16:17:31 2024
time_local = time.ctime()
print(time_local)#Fri Apr 19 16:17:31 2024
-
time.ctime()(时间戳)
-
时间戳 --> %a %b %d %H:%M:%S %Y串
-
如果不传参数,直接返回当前时间的格式化串
-
import time
time_str = time.ctime(time.time())
print(time_str)# Fri Apr 19 16:25:41 2024
time_local = time.ctime()
print(time_local)# Fri Apr 19 16:25:41 2024
【4】总结
-
time.time() 生成时间戳
-
时间戳是计算机能够识别的时间;
-
-
time.sleep() 随机睡眠多长时间
-
time.strftime() 时间字符串
-
时间字符串是人能够看懂的时间
-
-
time.strftime() 格式化输出当前时间
-
time.strptime() 将时间字符串格式转换为时间元组
-
元组则是用来操作时间的
-
-
time.localtime() 拿到当前时间的时间元组格式