【Python】 标准库time(一文解决时间模块time)

Python时间模块time

Python中与处理时间有关的模块包括time、datetime和calenda。

先理清几个概念:
时间戳(timestamp):表示从1970年1月1日00:00:00开始按秒计算的偏移量。
UTC:世界协调时,亦即格林威治天文时间,世界标准时间
DST:夏令时
时间元组(time_struct):时间元组包含9个元素,返回time_struct的函数主要有gmtime(),localtime(),strptime()。
借用图片

时间元组中的参数:

索引属性
0tm_year(年)如2020
1tm_mon(月)1-12
2tm_mday(日)1-31
3tm_hour(时)0-23
4tm_min(分)0-59
5tm_sec(秒)0-61
6tm_wday(weekday)0-6(0表示周日)
7tm_yday(一年中的第几天)1-366
8tm_isdst(是否是夏令时)默认为-1
  • time.localtime([secs])
    将一个时间戳secs转化为当前时区的时间元组struct_time。当secs参数省略时默认为当前系统时间。
>>>time.localtime()
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=29, tm_hour=9, tm_min=28, tm_sec=48, tm_wday=6, tm_yday=89, tm_isdst=0)
  • time.gmtime([secs])
    将一个时间戳转化为UTC时区(0时区)的时间元组struct_time。(看起来和localtime作用效果类似)
>>>time.gmtime()
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=29, tm_hour=1, tm_min=40, tm_sec=19, tm_wday=6, tm_yday=89, tm_isdst=0)
  • time.time()
    返回当前时间的时间戳
>>>time.time()
1585446103.1988997
  • time.mktime(t)
    将一个时间元组struct_time转化为时间戳
>>>a=time.mktime(time.localtime())
1585446197.0
  • time.sleep(secs)
    让线程推迟指定时间运行,即睡secs之后再执行后面的命令。
>>>print(time.time())
   time.sleep(5)
   print(time.time())
1585446328.1043615
1585446333.104717
#从上面结果也能发现也不是百分百精确,但其精度已经达到很高
  • time.clock()
    unix系统中其返回的是“进程时间”,他是用秒表示的浮点数(时间戳);Windows系统中,第一次调用返回的是进程运行的实际时间,第二次调用返回的是自第一次调用以后到现在的运行时间。
  • time.asctime([t])
    把一个表示时间的元组或者struct_time表示为如下形式,当没有参数时,会把local.time()作为参数传入。
>>>time.asctime()
Sun Mar 29 09:52:02 2020
  • time.ctime([secs])
    把一个时间戳转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认当前系统时间。
>>>time.ctime()
Sun Mar 29 09:55:14 2020
  • time.strftime(format [ , t ])
    把一个表示时间的元组或者struct_time转化为格式化的时间字符串。当t未指定时,从local.time()传入。如果元组中任何一个元素越界,会抛出异常valueerror 。
格式说明
%a本地(local)简化星期名称
%A本地完整星期名称
%b本地简化月份名称
%B本地完整月份名称
%c本地相应的日期和时间表示
%d一个月中的第几天(01-31)
%H一天中的第几个小时(24小时制,00-23)
%I第几个小时(12小时制,01-12)
%j一年中的第几天(001-366)
%m月份(01-12)
%M分钟数(00-59)
%p本地am或者pm相应符
%S秒(01-61)
%U一年中的星期数。(00-53星期天是一个星期的开始。)第一个星期天之前所有天数都放在第0周
%w一个星期中的第几天(0-6,0是星期天)
%W和%U基本一样,不同的是%W以星期一为一个星期的开始。
%x本地相应日期
%X本地相应时间
%y去掉世纪的年份(00-99)
%Y完整的年份
%Z时区的名字(如果不存在为空字符)
%%‘%’字符
>>>import time
   t = (2016, 9, 25, 17, 50, 38, 6, 48, 0)
   t = time.mktime(t)
   print(time.strftime('%b %d %Y %H:%M:%S', time.gmtime(t)))
   print(time.strftime('%b %d %Y %H:%M:%S'))
   print(time.strftime('%H:%M:%S'))
Sep 25 2016 09:50:38
Mar 29 2020 10:19:37
10:19:37
  • time.strptime(string[,format])
    time.strftime(format [ , t ])的逆操作,把一个格式化时间字符串转化为struct_time。
>>>import time
   struct_time = time.strptime("8 Sep 18", "%d %b %y") 
   print('returned tuple: ', struct_time)

returned tuple:  time.struct_time(tm_year=2018, tm_mon=9, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=251, tm_isdst=-1)

猜你喜欢

Python 标准库random
Python 标准库turtle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值