Python时间模块
每当处理与时间相关的任务时,我们可以始终使用Python内置的time模块。由于这个内置模块的存在,我们可以使用多种方式在代码中表示时间,包括数字、字符串和对象。它还具有其他功能,比如获取当前时间、等待代码执行、暂停程序执行和衡量代码的效果。
我们将深入介绍如何处理日期和时间,以及如何使用浮点数、元组和struct_time来表示时间。我们还将学习如何在不同的时间表示之间进行转换,并理解暂停线程的执行。
Python的time模块是一个非常实用的工具,用于操作与时间相关的函数和对象。因此,我们必须首先导入模块,才能开始在Python中使用time模块。
Python的time模块提供了处理与时间相关任务的函数。
其中与时间相关的任务包括读取当前时间、格式化时间、休眠一段预定的时间等等。
添加时间模块
由于它是Python标准实用模块的一部分,因此无需单独安装时间模块。
import time
什么是纪元
纪元是时间开始的时刻,根据平台不同而有所变化。在Windows和大多数Unix系统上,纪元是1970年1月1日00:00:00(UTC),计算距离纪元过去的秒数时不包括闰秒。我们可以使用time函数来确定在特定平台上的纪元时刻。gmtime(0)。
Python时间以浮点数(秒)表示
time.time()函数返回的第一个值是自纪元以来的持续时间(秒)。为了处理小数秒,此函数返回一个浮点数据类型。
代码
# Import time module
from time import time
print(time())
输出:
1659877305.6220002
在您的计算机上,用于计算纪元的参考点可能有很大差异。因此,可能会收到不同的输出。
要做到这一点,请将time.ctime()函数传递给time()函数返回的秒数。
秒数可以输入到时间模块的time.ctime()函数中,该函数将计算截止到这些秒的时间并返回一个24个字符的时间字符串对象。如果没有争议,时间将计算到当前时刻。
代码
# Import time module
import time
current = time.ctime(2649877305.6210002)
print("Current time: ", current)
输出:
Current time: Wed June 7 08:21:45 2023
The Epoch
在上一节中,我们了解到可以在Python中获得日期时间作为浮点对象,它表示自纪元开始以来的时间量。
将来时间的计算是基于一个特定的时刻。这是一个基于特定日期的时间记事系统。
需要注意的是,在使用Python日期时间时,必须记住您正在考虑表示为参考点的时间段。在计算领域中,这个时间点称为纪元。
纪元作为测量时间流逝的起点。
例如,我们可以表示纪元发生在IST 2022年4月2日午夜。如果我们在2022年4月3日午夜找到时间,那么自纪元开始以来必须经过86400秒。
一分钟有60秒,一小时有60分钟,一天有24小时。因此,可以手动计算两个时间之间的秒数。
代码
print(60 * 60 * 24)
输出:
86400
牢记我们仍然可以描述纪元之前的时间,而在这种情况下,结果将不利。
我们可以使用2022年4月1日IST的午夜来表示当前时间与纪元(即2022年4月2日)之间相差的秒数(-86400秒)。
在1970年1月1日,UTC成为最广泛使用的纪元,虽然它并非唯一一个。不同的文件系统、操作系统和API偶尔会使用各种不同的纪元。
UNIX系统将其纪元定义为1970年1月1日。另一方面,Win32 API将其纪元日期指定为1601年1月1日。
我们可以使用时间来找到您系统上的纪元。gmtime()是一个时间模块函数。
代码
# Import time module
import time
from datetime import datetime
epoch = time.gmtime(0)
print(epoch)
# Converting the struct_time object to standard datetime
print(datetime.fromtimestamp(time.mktime(epoch)))
输出:
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
1970-01-01 00:00:00