内容
几乎所有程序都使用时间。 在 Python 中,为此开发了一个单独的库—— 次用于执行各种操作。 为了使它工作,它必须首先在代码的开头声明。 此行用于此目的:
进口时间
让我们考虑如何在实践中正确使用此模块的不同选项。
确定自纪元以来的秒数
为了完成这个任务,有一个函数 次() 不带参数。 它的返回值是自 1 年 1970 月 XNUMX 日以来经过了多少秒。在 Python 中,这个时间被称为一个纪元的开始。 至少在 Unix 系列的操作系统中。
至于 Windows,日期是一样的,但是这个日期之前的负值可能会出现问题。
使用的时区是 UTC。
进口时间
秒 = time.time()
打印(“自纪元以来的秒数=”,秒)
这个函数的复杂之处在于它不能准确地显示日期,而只显示秒数。 要转换为大家都熟悉的格式,您需要使用准确的信息。 为此,使用该功能 时间.ctime()。
以通常的格式返回日期、时间
要以通常的格式返回时间,有一个方法 时间.ctime()。 括号表示一个变量或一个数字,表示自纪元开始以来经过的秒数。 此方法返回所有日期和时间特征,包括日期、年份、小时数、分钟数、秒数和星期几。
该函数也可以不带参数使用。 在这种情况下,它返回当前日期、时间等。
这是一个演示这一点的代码片段。
进口时间
打印(时间.ctime())
23 年 10 月 18 日,星期二 23:2018:XNUMX
最后一行是打印到运行 Python 解释器的控制台的内容。 该方法自动将接收到的秒数格式化为用户熟悉的形式。 诚然,上述所有元素都很少使用。 通常,您只需要获取时间,或者只需要获取今天的日期。 为此,使用了一个单独的函数—— strftime()。 但在考虑之前,我们需要解析类 time.struct_time。
上课时间.struct_time
这是可以被一系列方法接受的一类参数。 它没有任何选择。 它是一个具有命名接口的元组。 简单地说,这个类的元素可以通过名称和索引号访问。
它由以下属性组成。
注意力! 与许多其他编程语言不同,这里的月份范围可以从 1 到 12,而不是从 11 到 XNUMX。
返回特定格式
使用功能 时间() 您可以分别获取年、月、日、小时、分钟、秒并将它们返回到文本字符串。 然后可以使用该功能将其打印给用户 打印 () 或以其他方式处理。
作为参数,函数可以采用任何变量,该变量采用该模块的其他函数返回的值。 例如,您可以将本地时间传输给它(稍后将讨论),它将从中提取必要的数据。
这是我们执行此操作的代码片段。
进口时间
named_tuple = time.localtime() # 获取 struct_time
time_string = time.strftime(《%m/%d/%Y,%H:%M:%S》,named_tuple)
打印(时间字符串)
如果您运行此代码,将显示当前日期和时间。 可以更改元素的格式和顺序。 它们如下:
- %Y 是年份。
- %m 是月份。
- %d – 天。
- %H——时间。
- %M – 分钟。
- %S——第二个。
因此,您可以使输出仅包含月份和日期。 为此,您根本不需要给出显示年份的命令。 也就是把上面的公式写成参数%m/%d,就这样。 反之亦然,%d/%m。
事实上,字符串文字的数量要大得多。 这是一个详细描述它们的表格。
将线程推迟一定秒数
为此,使用该功能 睡觉 (). 相当大的编程任务块与时间的流逝有关。 有时您必须将下一步推迟一段时间。 例如,如果您需要与需要一定时间来处理的数据库进行交互。
作为参数,该方法使用一个值来表示从算法延迟下一步的秒数。
例如,在此代码段中,延迟为 10 秒。
进口时间
暂停 = 10
print(«程序开始...»)
time.sleep(暂停)
print(str(pause) + » 秒过去了。»)
结果,我们将得到:
程序开始...
10秒过去了。
正如我们从输出中看到的那样,程序首先报告它已经启动。 十秒钟后,她写道,这个时间已经过去了。
该函数允许您以毫秒为单位指定暂停的持续时间。 为此,我们使用函数参数的小数值 睡觉。 例如,0,1。 这意味着延迟将是 100 毫秒。
获取当地时间
使用 localtime() 函数,程序获取自特定时区中纪元开始以来的秒数。
为了清楚起见,让我们给出一个示例代码。
进口时间
结果 = time.localtime(1575721830)
打印(“结果:”,结果)
打印(«nгод:»,结果.tm_year)
打印(«tm_hour:»,result.tm_hour)
根据自纪元以来的秒数以 UTC 格式返回 struct_time
这个任务是使用 time.gmtime() 来完成的。 方法。 如果我们举个例子会更清楚。
进口时间
结果 = time.gmtime(1575721830)
打印(“结果:”,结果)
打印(«nгод:»,结果.tm_year)
打印(«tm_hour:»,result.tm_hour)
如果您打开这一系列操作,则会显示一组与时间、年份和时区相关的元素。
返回自纪元开始以来的秒数,并自动转换为本地时间
如果遇到这样的任务,使用方法实现 时间(),需要 结构时间. 之后,它执行函数的相反动作 当地时间()。 也就是说,它将根据本地时区的时间转换为自纪元开始以来经过的秒数,并针对时区进行了调整。
mktime() 和 localtime() 函数紧密相连。 此代码片段清楚地说明了这一点。 让我们看一下它以更深入地了解它的工作原理。
进口时间
秒 = 1575721830
# 返回结构时间
t = time.localtime(秒)
打印(«t1:«,t)
# 从 struct_time 返回秒数
s = 时间.mktime(t)
打印(«ns:»,秒)
我们看到变量 秒 自纪元以来已分配 1575721830 秒。 首先,程序获取准确的日期、时间等参数,根据这个值,放入一个变量中 t,然后将其内容转换为变量 s.
之后换行并在控制台中显示秒数。 您可以检查它是否与分配给 seconds 变量的数字相同。
引用 struct_time 的 9 个数字的输出日期
假设我们有 9 个数字代表年、月、日、星期几和许多其他值,我们需要将它们组合成一个字符串。 为此,使用该功能 时间(). 她接受或准备好 结构时间, 或任何其他代表相同的 9 个值的元组。 之后,返回一个字符串,它是日期、时间和许多其他参数。
使用此方法将不同的用户指定数据放入单个变量中非常方便。.
例如,它可以是一个程序,其中用户分别指定日、月、年、星期几,以及与事件注册有关的其他数据。 之后,收到的信息被输入数据库,然后发送给另一个请求它的人。
根据 Python 字符串获取时间和日期
假设用户指定了不同的数据,我们需要将它们以用户输入的格式组合成一行,然后复制到另一个变量,并在那里将其重建为标准格式。 为此,使用该功能 时间.strptime()。
它接受一个指定此值的变量,并返回我们已经熟悉的 结构时间.
为了清楚起见,我们将编写这样一个程序。
进口时间
time_string = «15 年 2019 月 XNUMX 日»
结果 = time.strptime(time_string, «%d %B, %Y»)
打印(结果)
猜猜输出会是什么? 尝试猜测而不看底线。 然后检查答案。
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=166, tm_isdst=-1)
总之,在 Python 中处理日期和时间一点也不难。 遵循这些说明就足够了,一切都会好起来的。 使用库 次 用户获得了大量使用时间的机会,例如:
- 暂停程序执行一段指定的时间。
- 显示自纪元以来经过的时间,以秒为单位。 此信息可用于总结时间或对其执行其他数学运算。
- 转换为方便的格式。 此外,程序员自己可以设置将显示哪些元素以及以什么顺序显示。
还有许多其他的可能性,但今天我们分析了最基本的可能性。 它们将在几乎任何以某种方式与时间一起工作的程序中派上用场。 祝你好运。