Python-time库的使用

time库的相关了解

时间元组(struct_time )

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

序号字段属性
04位数年tm_year如2008
1tm_mon1 到 12
2tm_mday1到31
3小时tm_hour0到23
4分钟tm_min0到59
5tm_sec0到61 (60或61 是闰秒)
6一周的第几日m_wday0到6 (0是周一)
7一年的第几日tm_yday1到366 (儒略历)
8夏令时tm_isdst1(夏令时)、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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值