time模块
1.计算机基础2.编程语言和Python语言介绍3.八大基本数据类型4.python语法入门变量和常量5.python和pycharm相关补充6.计算机五大部件补充7.文件操作8.编码和解码9.字符编码10.基本数据类型的内置方法11.循坏结构12.流程控制13.基本运算符14.程序与用户交互15.迭代器16.闭包函数17.装饰器18.多层语法糖嵌套19.函数的参数20.函数的可变长参数21.命名关键字参数22.名称空间与作用域23.异常处理24.深浅拷贝问题25.函数的定义和调用26.控制文件读写内容的模式27.主动控制文件内指针移动28.文件的操作方法29.垃圾回收机制GC30.可变与不可变类型31.元类32.内置方法33.pickle模块34.单例模式35.方法补充issubclass和isinstance36.多态37.继承38.面向对象的三大特性39.封装40.内置函数41.面向对象42.logging模块43.subprocess模块44.正则45.datetime模块
46.time模块
47.绝对路径和相对路径48.random模块49.os模块50.hashlib模块51.模块与包52.json模块53.生成器54.三元运算符time模块
- 表示时间的三种方式
- 时间戳
- 元组(struct_time)
- 格式化的时间字符串:
- 格式化的时间字符串(Format String): ‘1999-12-06’
(1)导入模块
- import time
(2)时间戳(time)
(1)生成时间戳
- 生成时间戳 , 时间戳是浮点数类型
# #时间戳
# # time=time.time()
# # print(time)
- 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
- 时间戳是使用数字签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息。
- 时间戳系统用来产生和管理时间戳,对签名对象进行数字签名产生时间戳,以证明原始文件在签名时间之前已经存在。
(2)时间戳转换为时间元组(UTC时间)
- 将时间戳转换为UTC时间,与英国伦敦当地时间一致
# #时间戳转化为时间元组(UTC时间)
# time1=time.time()
# print(time.gmtime(time1))
# #time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=11, tm_min=9, tm_sec=53, tm_wday=6, tm_yday=351, tm_isdst=0)
#
# time_time = time.time()
# print(time.gmtime(time_time))
# #time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=11, tm_min=5, tm_sec=58, tm_wday=6, tm_yday=351, tm_isdst=0)
(3)时间戳转换为时间元组(当地时间)
- 当地时间。例如我们现在在北京执行这个方法:与UTC时间相差8小时,UTC时间+8小时 = 北京时间
# #时间戳转换为时间元组(当地时间)
# time1=time.time()
# print(time.localtime(time1))
# #time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=19, tm_min=11, tm_sec=18, tm_wday=6, tm_yday=351, tm_isdst=0)
(3)时间字符串(strftime)
# #时间字符串
# print(f"{time.strftime('%x %X')}")#12/17/23 19:13:46
# time1=time.strftime("%x %X")
# print(time1)#12/17/23 19:13:55
- 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 | 当前时区的名称 | |
%% | %号本身 |
(4)时间元组(struct_time)
- localtime将一个时间戳转换为当前时区的struct_time
# #时间元组(struct_time)
# time=time.localtime()
# print(time)
# #time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=19, tm_min=17, tm_sec=5, tm_wday=6, tm_yday=351, tm_isdst=0)
- struct_time 元组共有9个元素共九个元素:
- (年,月,日,时,分,秒,一年中第几周,一年中第几天等)
索引(Index) | 属性(Attribute) | 值(Values) |
---|---|---|
0 | (年) | 比如2023 |
1 | tm_mon(月) | 1 - 12 |
2 | tm_mday(日) | 1 - 31 |
3 | tm_hour(时) | 0 - 23 |
4 | tm_min(分) | 0 - 59 |
5 | tm_sec(秒) | 0 - 60 |
6 | tm_wday(weekday) | 0 - 6(0表示周一) |
7 | tm_yday(一年中的第几天) | 1 - 366 |
8 | tm_isdst(是否是夏令时) | 默认为0 |

(5)结构化时间
(1)time.mktime(时间戳--》元组时间戳)
# #time.mktime(时间戳--》元组时间戳)
# time1=time.time()
# print(time1)#1702812197.9736006
# time1_tuple=time.localtime(time1)
# print(time1_tuple)
# #time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=19, tm_min=23, tm_sec=17, tm_wday=6, tm_yday=351, tm_isdst=0)
# time1_str=time.mktime(time1_tuple)
# print(time1_str)
# #1702812197.0
(2)time.strftime(结构化时间--》时间字符串)
- 结构化时间参数若不传,则显示当前时间
# #time.strftime(结构胡时间--》时间字符串)
# #格式化当前时间
# time_str=time.strftime("%y-%m-%d %x")
# print(time_str)#23-12-17 12/17/23
#
# print(time.localtime(time.time()))
# #time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=19, tm_min=26, tm_sec=26, tm_wday=6, tm_yday=351, tm_isdst=0)
# #格式化当前时间元组
# time_local=time.strftime("%Y-%m-%d",time.localtime(time.time()))
# print(time_local)
# #2023-12-17
(3)time.strptime(时间字符串--》时间元组)
# #time.strptime(时间字符串--》时间元组)
# time_str=time.strptime("2023-12-17","%Y-%m-%d")
# print(time_str)
# #time.struct_time(tm_year=2023, tm_mon=12, tm_mday=17, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=351, 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串)
- time.asctime(结构化时间)
- 如果不传参数,直接返回当前时间的格式化串
- time.ctime(时间戳)
- 时间戳 --> %a %b %d %H:%M:%S %Y串
- 如果不传参数,直接返回当前时间的格式化串
# #time.asctime(结构化时间--》%a%b%d%H:%M:%S%Y串)
# time_str = time.asctime(time.localtime(time.time()))
# print(time_str)
# #Sun Dec 17 19:31:41 2023
#
# time_local = time.asctime()
# print(time_local)
# #Sun Dec 17 19:32:04 2023

(6)小结
- 时间戳是计算机能够识别的时间;
- 时间字符串是人能够看懂的时间;
- 元组则是用来操作时间的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)