时间模块

Time 的表示方式

在Python中,通常时间戳,格式化的时间字符串,元组三种方式表示时间


时间戳 (timestamp)

timestamp通常表示从1970年1月1日00时00分00秒开始,按秒计算的偏移量
也就是从1970年1月1日00时00分00(北京时间:1970年1月1日08时00分00)起,到现在的毫秒数

时间戳是一个经加密后形成的凭证文档,包含三部分

  1. 需加时间戳的文件摘要(digest);
  2. DTS 收到文件的日期和时间;
  3. DTS 的数字签名
from time import *
print(time())
1542352379.598851

Python3.7 中支持的最大时间戳为32535244799(3001 -01 -01 15:59:59)


时间格式化符号

在这里插入图片描述
备注:

  1. %p只有与%I配合时才有效果;
  2. 文档中描述00-61,闰年秒站两秒;
  3. 当使用strptime()函数时,只有这一年的周数和天数确定是%U和%w才会计算

struct_time 元组

Python函数用一个元组装起来的九个数字处理时间,这个元组被称作struct_time元组
该元组共有 9 个元素:
年、月、日、时、分、秒、一年中的第几周、一年中的第几天、是否为夏令时
在这里插入图片描述



Time 模块中的常用函数

import time
from time import *

time()

用于返回当前时间的时间戳(timestamp),不需要传递参数


localtime([sces]) ;gmtime([secs])

  • localtime([secs])作用是将时间戳转换为本地时间,secs指转换为stuct_time类型的对象秒数;如果secs参数未输入,就以当前时间为转换标准,返回结果为时间元组(stuct_time)
  • gmtime([secs])与之类似,区别在于后者以UTC时区(0时区)转换时间戳

mktime(t)

  • 用于执行localtime([sces]) ;gmtime([secs])的反向操作,接收sturct_time对象作为参数(t),返回秒数表示的时间的浮点数;
  • 参数t表示结构化的时间或完整的9位元素


strftime(format[,t]) ; strptime(string[,format])

  • strftime(format[,t]) 用于接收时间元组,返回可读字符串标识当地时间
  • 格式由参数format决定
  • strptime(string[,format]) 可以理解为前者的反向操作,将指定格式的字符串拆解为时间元组
# 备注为执行结果
from time import *
print(localtime()) # time.struct_time(tm_year=2018, tm_mon=11, tm_mday=16, tm_hour=15, tm_min=42, tm_sec=25, tm_wday=4, tm_yday=320, tm_isdst=0)
print(gmtime())    # time.struct_time(tm_year=2018, tm_mon=11, tm_mday=16, tm_hour=7, tm_min=42, tm_sec=25, tm_wday=4, tm_yday=320, tm_isdst=0)
print(mktime(localtime())) # 1542354145.0
t = (2018,3,11,16,50,38,0,0,0)
print(strftime('%a %b %d %Y %H:%M:%S',localtime(mktime(t)))) # Sun Mar 11 2018 16:50:38
print(strptime('May 24 13 40 53 2018','%b %d %H %M %S %Y')) # time.struct_time(tm_year=2018, tm_mon=5, tm_mday=24, tm_hour=13, tm_min=40, tm_sec=53, tm_wday=3, tm_yday=144, tm_isdst=-1)


附上三种时间格式的转换图(asctime([t]) , ctime([secs])下文)
在这里插入图片描述



asctime([t]) ; ctime([secs])

  • asctime([t]) 用于接收一个时间元组,返回一个可读长度为24个字符的字符串
  • t指完整的9位元组或通过gmtime(),localtime()返回的时间值;
  • ctime([secs])用于接收一个时间戳,转化为time.asctime()的形式,如果未指定参数或参数为None,就默认以time()为参数;
  • ctime() 相当于 asctime(localtime(secs))
# 备注为执行结果
from time import *
t = (2018,3,11,16,50,38,0,0,0)
print(asctime(t))        # Mon Mar 11 16:50:38 2018 
print(ctime(mktime(t)))  # Sun Mar 11 16:50:38 2018

由执行结果看到:
若传入的参数 t 为手动编写的元组,asctime()函数只转换对应格式,不考虑实际周期天数。实际为:Sunday



sleep(secs)

  • 用于推迟调用线程的运行,可通过secs参数指定进程挂起的时间;
  • secs参数代表推迟执行的秒数
from time import *
sleep(3)
print('a + b')

运行代码3秒后展示结果a + b



clock()

  • 用来衡量不同程序之的耗时
  • 该函数在不同的系统上含义不同
    UNIX中返回的是“进程时间”,是用秒表示的浮点数(timestamp);
    Windows中,第一次调用返回进程运行的实际时间 / 第二次之后的调用返回自第一次调用后到这次调用的时间间隔
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值