您的位置:

使用Python的Time模块管理时间

一、时间的表示

计算机中的时间通常使用时间戳(time stamp)来表示,即从1970年1月1日零时零分零秒起至现在的总秒数。在Python中,时间戳可以使用time模块中的time()函数获得。例如:

import time
print("当前时间戳为:", time.time())

输出结果如下:

当前时间戳为: 1606305709.994335 

对于时间戳的操作,也可以将时间戳转换成不同格式的时间字符串或元组。下文将对此进行更深入的讲解。

二、时间的格式化

时间在不同场合下都需要有不同的表现形式,Python可以使用时间格式化指令来定制需要的表现形式。在time模块中,strftime()函数可以将表示时间的元组或时间戳以指定格式输出。例如:

import time
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))

输出结果如下:

2021-03-06 16:15:09

在上面的代码中,%Y代表四位数的年份,%m代表两位数的月份,%d代表两位数的日期,%H代表两位数的小时数,%M代表两位数的分钟数,%S代表两位数的秒数。

三、时间的加减

在实际应用中,我们常常需要进行时间的加减。Python的time模块中提供了操作时间的函数。例如,通过time模块中的gmtime()函数进行年份加1操作如下:

import time
t = time.gmtime()
print("现在的时间是:", time.strftime('%Y-%m-%d %H:%M:%S', t))
t2 = time.gmtime(time.mktime(t) + 3600 * 24 * 365) # 加1年
print("一年后的时间是:", time.strftime('%Y-%m-%d %H:%M:%S', t2))

输出结果如下:

现在的时间是: 2021-03-06 16:21:34
一年后的时间是: 2022-03-06 16:21:34

四、时间的比较

Python中可以使用time模块中的mktime()函数将时间元组转化为时间戳进行时间的比较。例如下面的代码是对当前时间与指定时间的比较:

import time
target = (2022, 3, 6, 16, 27, 0, 0, 0, 0)
target_stamp = time.mktime(target)
now_time = time.time()
if now_time > target_stamp:
    print("当前时间晚于指定时间。")
else:
    print("指定时间晚于当前时间。")

输出结果依据当前时间不同而不同。

五、时间的延迟

为了控制程序在指定的时间点进行某项操作,我们需要使用Python的time模块中的sleep()函数对时间进行延迟。例如下面的代码可以让程序暂停一秒钟:

import time
print("开始暂停一秒钟...")
time.sleep(1)
print("一秒钟后结束。")

输出结果如下:

开始暂停一秒钟...
一秒钟后结束。

六、小结

本文介绍了使用Python的time模块管理时间的基本方法,包括时间的表示、格式化、加减、比较和延迟。使用这些方法可以更加方便地进行时间处理,也能够帮助我们更好地管理和利用时间。