time模块

发布时间 2023-12-19 19:10:57作者: 苏苏!!

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

![image-20231217194306763](D:\old boy\typora\笔记\我的python28笔记\20\image-20231217194306763.png)

(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

![image-20231217194353924](D:\old boy\typora\笔记\我的python28笔记\20\image-20231217194353924.png)

(6)小结

  • 时间戳是计算机能够识别的时间;
  • 时间字符串是人能够看懂的时间;
  • 元组则是用来操作时间的