PyNotes-timePyNotes(2)关于time的简单介绍
参考资料
概述time模块 时间戳的获取、时间格式的转换和程序运行时间的计算。
方法
时间的获取time.time()
以floa浮点数获取当前时间戳,即计算机内部时间值,epoch 是1970年1月1日00:00:00(UTC)
>>> time.time()
1567344764.0376792time.ctime()
获取当前时间并以易读方式表示,返回字符串
>>> time.ctime()
'Sun Sep 1 21:36:10 2019'time.gmtime([secs])
获取当前的时间转换为0时区的时间,计算机可处理的struct_time格式
>>> time.gmtime()
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=1, tm_hour=13, tm_min=37, tm_sec=36, tm_wday=6, tm_yday=244, tm_isdst=0)
#time.struct_time(……)可以进行索引,也可以进行例如.tm_sec来获取里面的元素。time.localtime([secs])
获取当前的本地时间,计算机可处理的struct_time格式
>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=1, tm_hour=21, tm_min=41, tm_sec=43, tm_wday=6, tm_yday=244, tm_isdst=0)
时间的格式转化time.strptime(string[, format])
根据指定的格式把一个时间字符串解析为时间元组。
>>> timeStr = '2019-08-31 12:55:20'
>>> time.strptime(timeStr, "%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=31, tm_hour=12, tm_min=55, tm_sec=20, tm_wday=5, tm_yday=243, tm_isdst=-1)time.strftime(format[, t])
接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。
>>> time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())
'2019-09-01 13:58:21'
指令意义%a本地化的缩写星期中每日的名称.%A本地化的星期中每日的完整名称。%b本地化的月缩写名称。%B本地化的月完整名称。%c本地化的适当日期和时间表示。%d十进制数 [01,31] 表示的月中日。%H十进制数 [00,23] 表示的小时(24小时制)。%I十进制数 [01,12] 表示的小时(12小时制)。%j十进制数 [001,366] 表示的年中日。%m十进制数 [01,12] 表示的月。%M十进制数 [00,59] 表示的分钟。%p本地化的 AM 或 PM 。%S十进制数 [00,61] 表示的秒。%U十进制数 [00,53] 表示的一年中的周数(星期日作为一周的第一天)作为。在第一个星期日之前的新年中的所有日子都被认为是在第0周。%w十进制数 [0(星期日),6] 表示的周中日。%W十进制数 [00,53] 表示的一年中的周数(星期一作为一周的第一天)作为。在第一个星期一之前的新年中的所有日子被认为是在第0周。%x本地化的适当日期表示。%X本地化的适当时间表示。%y十进制数 [00,99] 表示的没有世纪的年份。%Y十进制数表示的带世纪的年份。%%字面的 '%' 字符time.mktime(struct_time)
time.mktime()函数用于执行与 gmtime()、localtime() 相反的操作.转化为浮点数的秒表示方式。
程序运行时间time.perf_counter() 返回一个CPU级别的精确时间计数值,单位为秒。
计算程序运行时间s需要一个首start一个尾end。s = end - start
>>> start = time.perf_counter()
>>> end = time.perf_counter()
>>> end - start
9.335069467953872
其他time.sleep(t)
用于推迟调用线程的运行,t拟休眠的时间,单位是秒,可以是浮点数。
实例结合turtle和time的模拟秒针走动。
# timeturtle.py
import turtle as t
import time
t1 = t.Turtle()
t2 = t.Turtle()
t1.speed(0.1)
t2.speed(0.1)
t1.penup()
t1.goto(0, -200)
t1.pendown()
t1.circle(200)
while True:
for i in range(60):
t2.penup()
t2.goto(0, 0)
t2.pendown()
print(i)
t2.seth(90-6*i)
t2.fd(150)
time.sleep(1)
t2.clear()