一、获取当前时间戳
time.time()
函数可以获取当前的时间戳,以浮点数的形式返回。时间戳是自1970年1月1日以来的秒数,也称为Unix时间戳。
import time
now = time.time()
print("当前时间戳为:", now)
输出结果:当前时间戳为:1605661038.9961302 时间戳的作用有很多,比如在程序调试时可以用来记录程序运行时间,或者计算程序运行的时间差。
二、计时器的实现
time
模块中提供了计时器的功能,可以用来测量程序和代码块的执行时间。
import time
start_time = time.time()
# 模拟程序执行时间
time.sleep(2)
end_time = time.time()
print("程序执行时间为:", end_time - start_time, "秒")
输出结果:程序执行时间为: 2.0001180171966553 秒 利用计时器,我们可以评估和优化程序的性能,例如通过改变某些函数或算法来缩短程序的执行时间。
三、时间格式的转换
time.time()
函数返回的是Unix时间戳,如果需要将其转换为人类可读的时间格式,可以使用time.localtime()
函数和time.strftime()
函数。
import time
# 获取当前时间戳
timestamp = time.time()
# 将时间戳转换为本地时间
local_time = time.localtime(timestamp)
# 将本地时间格式化为ISO格式(年-月-日 时:分:秒)
iso_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time)
print("当前时间为:", iso_time)
输出结果:当前时间为:2020-11-18 16:10:38
在实际开发中,我们会经常需要将时间格式转换为人类可读的形式,这种情况下,time
函数库中的函数就能派上用场了。
四、时间日期的加减计算
在实际开发中,我们经常需要对日期、时间进行加减计算,例如计算一个事件发生多久以前,或者计算某个时间点之后的一段时间。
import time
# 获取当前时间戳
now = time.time()
# 计算5天前的时间
five_days_ago = now - 5*24*60*60
# 将时间戳转换为本地时间
local_time = time.localtime(five_days_ago)
# 将本地时间格式化为ISO格式(年-月-日 时:分:秒)
iso_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time)
print("5天前的时间为:", iso_time)
输出结果:5天前的时间为:2020-11-13 16:10:38
通过time.time()
函数获取当前时间戳后,我们可以进行简单的加减计算,计算出需要的时间点。
五、多线程同步
在多线程应用中,有时需要对不同线程的执行时间进行同步控制,使线程间的执行时间保持同步状态。
import time
import threading
def worker():
print(threading.current_thread().getName(), '开始执行')
time.sleep(2)
print(threading.current_thread().getName(), '执行完毕')
start_time = time.time()
threads = []
# 创建5个线程
for i in range(5):
t = threading.Thread(target=worker)
threads.append(t)
# 启动线程
for t in threads:
t.start()
# 等待线程执行完成
for t in threads:
t.join()
end_time = time.time()
print('程序执行时间为:', end_time - start_time, '秒')
输出结果:
Thread-1 开始执行
Thread-2 开始执行
Thread-3 开始执行
Thread-4 开始执行
Thread-5 开始执行
Thread-4 执行完毕
Thread-3 执行完毕
Thread-5 执行完毕
Thread-2 执行完毕
Thread-1 执行完毕
程序执行时间为: 2.003438949584961 秒
通过使用time.time()
函数记录程序执行的开始和结束时间,可以计算出程序执行的时间长度,从而进行多线程同步控制。