python time模块常用函数总结

python 日期与时间

Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。

Python 提供了一个 time 模块可以用于格式化日期和时间。

time.time() 用于获取当前时间戳

每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。

Python 的 time 模块下有很多函数可以转换常见日期格式。

import time

ticks = time.time()
print(ticks)
>>> 1607266899.7510545
时间元组(time.struct_time)

python中时间元组是一个比较重要的类型,通过时间元组我们可以获取,年月日时分秒,星期几,一年中的第几天等信息。

在这里插入图片描述
从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。(直接使用localtime也可以获得当前的时间元组)

import time

ticks = time.localtime(time.time())
print(ticks)
>>> time.struct_time(tm_year=2020, tm_mon=12, tm_mday=6, tm_hour=23, tm_min=14, tm_sec=3, tm_wday=6, tm_yday=341, tm_isdst=0)
获取格式化的时间

你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime()

import time

ticks = time.asctime(time.localtime(time.time()))
print(ticks)
>>> Sun Dec  6 23:16:26 2020
格式化日期

strftime:str表示字符串,f是format,time是时间,就是时间格式化为字符串,该函数接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数 format 决定

语法

time.strftime(format[, t])

参数

format – 格式字符串。
t – 可选的参数t是一个struct_time对象。

import time

ticks = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
print(ticks)
>>> 2020-12-06 23:26:01

在这里插入图片描述

asctime()方法
描述

asctime() 函数接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。

语法

time.asctime([t]))

参数

t – 9个元素的元组或者通过函数 gmtime() 或 localtime() 返回的时间值。也可以是人工指定的时间元组,(最后两个参数不重要)
默认值是time.localtime()返回的时间元组

import time

#test1: 不加参数,默认就是time.localtime()返回的时间结构元组
print ("test1: print time.asctime():",time.asctime())

#test2: time.loaltime() 本地时间
t1 = time.localtime()
print ("test2: t1(localtime):",t1)
print ("test2: time.asctime(t1):",time.asctime(t1))

#test3: time.gmtime() 格林威治标准时间
t2 = time.gmtime()
print ("test3: t2(gmtime):",t2)
print ("test3: time.asctime(t2):",time.asctime(t2))

#test4: 按time_struct,人工指定时间结构元组
t3 = (2020,12,6,23,40,27,6,4,-1)
print ("test4: t3:",t3)
print ("test4: time.asctime(t3):",time.asctime(t3))
clock()

Python 3.8 已移除 clock() 方法 可以使用 time.perf_counter() 或 time.process_time() 方法替代。

clock() 函数以浮点数计算的秒数返回当前的CPU时间。这在统计某一程序或函数的执行速度最为合适,比time.time()更有用。

这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是"进程时间",它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32上QueryPerformanceCounter()为基础,它比毫秒表示更为精确)

time.time()是统计的wall time(即墙上时钟),也就是系统时钟的时间戳(1970纪元后经过的浮点秒数)。所以两次调用的时间差即为系统经过的总时间。

实例
import time

def func1():
    time.sleep(3)

t0 = time.clock()
func1()
print(time.clock()-t0)


t0 = time.time()
func1()
print(time.time()-t0)
ctime()

ctime() 函数把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。 如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于 asctime(localtime(secs))。

import time

a=time.ctime()
print(a)
gmtime()

gmtime() 函数将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970-1-1以来的秒数。其默认值为time.time(),函数返回time.struct_time类型的对象。(struct_time是在time模块中定义的表示时间的对象),该函数没有返回值
注:t.tm_isdst始终为0

import time

a=time.gmtime()
print(a)
localtime()

localtime() 函数类似gmtime(),作用是格式化时间戳为本地的时间。 如果sec参数未输入,则以当前时间为转换标准。 DST (Daylight Savings Time) flag (-1, 0 or 1) 是否是夏令时。

import time

print(time.localtime())
mktime()

Python time mktime() 函数执行与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,返回用秒数来表示时间的浮点数。
如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError。

# mktime 输入的日期是带时区的,返回的值才是不带时区的。
import time

a = (1970, 1, 1, 8, 0, 0, 3, 1, 0)
print(time.mktime(a))
sleep()

sleep() 函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。

import time

print(time.ctime())
time.sleep(3)
print(time.ctime())
strptime()

strptime() 函数根据指定的格式把一个时间字符串解析为时间元组,和strftime()刚好相反

import time

a=time.strptime('2000','%Y')
print(a)
time.timezone

属性 time.timezone 是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0美洲 ,<=0大部分欧洲,亚洲,非洲)

import time

a=time.timezone
print(a)

。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值