Python 3 中的时间模块。主要方法、模板、示例

几乎所有程序都使用时间。 在 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

这是可以被一系列方法接受的一类参数。 它没有任何选择。 它是一个具有命名接口的元组。 简单地说,这个类的元素可以通过名称和索引号访问。

它由以下属性组成。Python 3 中的时间模块。主要方法、模板、示例

注意力! 与许多其他编程语言不同,这里的月份范围可以从 1 到 12,而不是从 11 到 XNUMX。

返回特定格式

使用功能 时间() 您可以分别获取年、月、日、小时、分钟、秒并将它们返回到文本字符串。 然后可以使用该功能将其打印给用户 打印 () 或以其他方式处理。

作为参数,函数可以采用任何变量,该变量采用该模块的其他函数返回的值。 例如,您可以将本地时间传输给它(稍后将讨论),它将从中提取必要的数据。

这是我们执行此操作的代码片段。

进口时间

named_tuple = time.localtime() # 获取 struct_time

time_string = time.strftime(《%m/%d/%Y,%H:%M:%S》,named_tuple)

打印(时间字符串)

如果您运行此代码,将显示当前日期和时间。 可以更改元素的格式和顺序。 它们如下:

  1. %Y 是年份。
  2. %m 是月份。
  3. %d – 天。
  4. %H——时间。
  5. %M – 分钟。
  6. %S——第二个。

因此,您可以使输出仅包含月份和日期。 为此,您根本不需要给出显示年份的命令。 也就是把上面的公式写成参数%m/%d,就这样。 反之亦然,%d/%m。 

事实上,字符串文字的数量要大得多。 这是一个详细描述它们的表格。Python 3 中的时间模块。主要方法、模板、示例

将线程推迟一定秒数

为此,使用该功能 睡觉 (). 相当大的编程任务块与时间的流逝有关。 有时您必须将下一步推迟一段时间。 例如,如果您需要与需要一定时间来处理的数据库进行交互。

作为参数,该方法使用一个值来表示从算法延迟下一步的秒数。

例如,在此代码段中,延迟为 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 中处理日期和时间一点也不难。 遵循这些说明就足够了,一切都会好起来的。 使用库 用户获得了大量使用时间的机会,例如:

  1. 暂停程序执行一段指定的时间。
  2. 显示自纪元以来经过的时间,以秒为单位。 此信息可用于总结时间或对其执行其他数学运算。
  3. 转换为方便的格式。 此外,程序员自己可以设置将显示哪些元素以及以什么顺序显示。 

还有许多其他的可能性,但今天我们分析了最基本的可能性。 它们将在几乎任何以某种方式与时间一起工作的程序中派上用场。 祝你好运。

发表评论