time模块的理解

准备学协程的,加大爬虫的效率,发现涉及的time模块的知识太少了,所以准备好好学一波time模块
基于这篇博客的学习,这篇博客讲的很清楚了,很多表达都是看的他的,因为暂时想不出更好的表达了

Python中常用的时间表示方式

  • 时间戳:

时间戳表示是从1970年1月1号00:00:00开始到现在按秒计算的偏移量偏移量偏移量(说了三遍)。返回时间戳的函数主要有time()clock()等。

  • 格式化的时间字符串
    类似于"2021-01-7 0:50:30"

  • 元组(struct_time 共九种元素)

struct_time元组共有9个元素,返回struct_time的函数主要有gmtime()localtime()strptime()

下面这个就叫struct_time元组

import time
print(time.localtime())
>>>time.struct_time(tm_year=2021, tm_mon=1, tm_mday=7, tm_hour=0, tm_min=8, tm_sec=43, tm_wday=3, tm_yday=7, 
tm_isdst=0)

tm_year :年
tm_mon :月(1-12)
tm_mday :日(1-31)
tm_hour :时(0-23)
tm_min :分(0-59)
tm_sec :秒(0-59)
tm_wday :星期几(0-6,0表示周日)
tm_yday :一年中的第几天(1-366)
tm_isdst :是否是夏令时(默认为-1)

time模块中常用的函数

time.time()

返回当前时间的时间戳
返回的是浮点数

time.localtime([secs])

默认使用就返回现在的时间(九个元素的struct_time元组)
其实就是返回从1970年开始偏移了secs秒后的时间,默认是time.time()也就是偏移到了现在

import time
print(time.localtime(1000))
>>>time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=16, tm_sec=40, tm_wday=3, tm_yday=1, tm_isdst=0)

time.gmtime([secs])

感觉功能和localtime差不多,就当localtime来使用,没看出什么区别,还请知道的大佬补充一下

time.mktime(t)

将一个struct_time转化为时间戳
t :结构化的时间或者完整的9位元组元素

time.sleep(secs)

延迟执行线程
参数的单位是秒

time.clock()

第一次调用,返回的是进程运行时实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。
总之就当一个time.time()来用

time.asctime( [t] )

把一个表示时间的元组或者struct_time表示为 ‘Thu Jan 7 00:36:47 2021’ 这种形式。如果没有给参数,会将time.localtime()作为参数传入。
t : 9个元素的元组或者通过函数 gmtime() 或 localtime() 返回的时间值

time.ctime([secs])

把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果为指定参数,将会默认使用time.time()作为参数。它的作用相当于time.asctime(time.localtime(secs))
sec :要转换为字符串时间的秒数

time.strftime( format [, t] )

返回字符串表示的当地时间
把一个代表时间的元组或者struct_time(如由time.localtime()time.gmtime()返回)转化为格式化的时间字符串,格式由参数format决定。如果未指定,将传入time.localtime()。如果元组中任何一个元素越界,就会抛出ValueError的异常。函数返回的是一个可读表示的本地时间的字符串。

可选参数 t:一个struct_time对象

时间字符串支持的格式符号:(注意大小写)


%a  本地星期名称的简写(如星期四为Thu)      
%A  本地星期名称的全称(如星期四为Thursday)      
%b  本地月份名称的简写(如八月份为agu)    
%B  本地月份名称的全称(如八月份为august)       
%c  本地相应的日期和时间的字符串表示(如:15/08/27 10:20:06%d  一个月中的第几天(01 - 31%f  微妙(范围0.999999%H  一天中的第几个小时(24小时制,00 - 23%I  第几个小时(12小时制,0 - 11%j  一年中的第几天(001 - 366%m  月份(01 - 12%M  分钟数(00 - 59%p  本地am或者pm的相应符      
%S  秒(00 - 61%U  一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之    前的所有天数都放在第0周。     
%w  一个星期中的第几天(0 - 60是星期天)    
%W  和%U基本相同,不同的是%W以星期一为一个星期的开始。    
%x  本地相应日期字符串(如15/08/01%X  本地相应时间字符串(如08:08:10%y  去掉世纪的年份(00 - 99)两个数字表示的年份       
%Y  完整的年份(4个数字表示年份)
%z  与UTC时间的间隔(如果是本地时间,返回空字符串)
%Z  时区的名字(如果是本地时间,返回空字符串)       
%%%’字符

time.strptime(string[,format])

将格式字符串转化成struct_time.返回值就是struct_time的形式,具体返回哪些就得看字符串有哪些了
实际上就是time.strftime()函数的逆操作

stime = "2021-01-7 0:50:30"
formattime = time.strptime(stime,"%Y-%m-%d %H:%M:%S")
print formattime
>>>time.struct_time(tm_year=2021, tm_mon=1, tm_mday=7, tm_hour=0, tm_min=50, tm_sec=30, tm_wday=3, tm_yday=7, tm_isdst=-1)

你可能感兴趣的:(python,笔记,字符串,python)