Python-time库的使用

Python-time库的使用

    • time库的相关了解
      • 时间元组(struct_time )
      • 时间日期格式化符号
    • 常用内容
      • 时间戳与时间元组
      • 时间格式化显示相关
      • 其他
    • 应用
      • 计算时间偏差

time库的相关了解

时间元组(struct_time )

Python函数用一个元组装起来的9组数字处理时间

序号 字段 属性
0 4位数年 tm_year 如2008
1 tm_mon 1 到 12
2 tm_mday 1到31
3 小时 tm_hour 0到23
4 分钟 tm_min 0到59
5 tm_sec 0到61 (60或61 是闰秒)
6 一周的第几日 m_wday 0到6 (0是周一)
7 一年的第几日 tm_yday 1到366 (儒略历)
8 夏令时 tm_isdst 1(夏令时)、0(不是夏令时)、-1(未知),默认 -1

时间日期格式化符号

  • %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 当前时区的名称
  • %% %号本身

常用内容

时间戳与时间元组

''' 
[] :表示参数可选
'''
# 生成当前时间的时间戳,浮点秒数,如果不需要小数点后面的内容,可以int(time.time())
time.time()
# 1688379497.370187

# 把时间戳转化位时间元组 
time.localtime([secs])
# time.localtime(1688379497)
# time.struct_time(tm_year=2023, tm_mon=7, tm_mday=3, tm_hour=18, tm_min=18, tm_sec=17, tm_wday=0, tm_yday=184, tm_isdst=0)

# 将时间元组转成时间戳,接受时间元组并返回时间戳
time.mktime(struct_time)
# time.mktime(time.localtime())
# 1688433397.0

时间格式化显示相关

'''
Python 给定的时间显示:
time.asctime([tupletime])
time.ctime([secs])

格式化时间:
time.strftime(fmt[,tupletime])
time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
'''

# time.asctime([tupletime]) 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串,不传时间元组,则返回当前时间
time.asctime(time.localtime()) # 'Tue Jul  4 09:16:37 2023'
time.asctime() # 'Tue Jul  4 09:23:46 2023'

# time.ctime([secs]) 作用相当于asctime(localtime(secs)),传的是时间戳;未给参数相当于asctime()
time.ctime(t1) # t1 = 1688433397.0,结果为'Tue Jul  4 09:16:37 2023'
time.ctime()   # 'Tue Jul  4 09:30:20 2023'

# time.strftime(fmt[,tupletime]) 接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  # '2023-07-04 09:46:27'

# time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') 根据fmt的格式把一个时间字符串解析为时间元组。
struct_time = time.strptime("20230704094627", "%Y%m%d%H%M%S")  
#time.struct_time(tm_year=2023, tm_mon=7, tm_mday=4, tm_hour=9, tm_min=46, tm_sec=27, tm_wday=1, tm_yday=185, tm_isdst=-1)

其他

time.sleep(secs) # 推迟调用线程的运行,secs指秒数

应用

计算时间偏差

已知两个时间的时间字符传,计算出两个时间的偏差秒数

import time
# 时间
t1 = "20230206211041"
t2 = "20230315150719"
# 将时间t1,t2转为时间元组
struct_t1 = time.strptime(t1, "%Y%m%d%H%M%S")
struct_t2 = time.strptime(t2, "%Y%m%d%H%M%S")
# 将时间元组转化位时间戳
secs_t1 = time.mktime(struct_t1)
secs_t2 = time.mktime(struct_t2)

# 计算两个时间戳的差值即为时间偏差
abs(secs_t1-secs_t2)
# 结果为:3174998.0

你可能感兴趣的:(Python学习,python,开发语言)