Документация по Python. Теоретические материалы, и практические задачи

Модуль time Python

Продолжая цикл статей по управлению датой и временем, сегодня мы с вами рассмотрим модуль time. На примерах подробно разберем различные функции, определенные в модуле time.

Для того что бы использовать данный модуль, в первую очередь его необходимо импортировать, с этим у вас не должно возникнуть проблем.

А теперь давайте на примерах разберем функции определенные в данном модуле.

Python time.time()

Функция time(), возвращает нам количество секунд прошедших с начала эпохи. Обычно такой датой является 1 январь 1970 года.

                    
import time
seconds = time.time()
print("Seconds since epoch =", seconds)

time.ctime

Функция time.ctime, принимает секунды в качестве аргумента и возвращает строку, представляющее местное время.

                    
import time

# seconds passed since epoch
seconds = 1545925769.9618232
local_time = time.ctime(seconds)
print("Local time:", local_time)

Результат:
Local time: Thu Dec 27 15:49:29 2018

 time.sleep

Одним из наиболее часто используемых функций данного модуля является функция sleep(). Данный метод позволяет заснуть программе на определенное время. При написании различных парсеров, для ограничения запросов, или для придания вашим запросам более человеческий вид, данная функция играет важную роль.

                    
import time

print("This is printed immediately.")
time.sleep(2.0)
print("This is printed after 2.0 seconds.")

Прежде чем мы перейдем к остальным функциям модуля, рассмотрим класс time.struct.time вкратце.

time.struct_time

Пример объекта time.struct_time.

                    
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=6, tm_min=35, tm_sec=17, tm_wday=3, tm_yday=361, tm_isdst=0)
УказательАтрибутЗапросы
0tm_year0000, ...., 2018, ..., 9999
1tm_mon1, 2, ..., 12
2tm_mday1, 2, ..., 31
3tm_hour0, 1, ..., 23
4tm_min0, 1, ..., 59
5tm_sec0, 1, ..., 61
6tm_wday0, 1, ..., 6; Понедельник-0
7tm_yday1, 2, ..., 366

Все значения объекта доступны как по индексам, так и по атрибутам.

time.localtime

Функция localtime(), в качестве аргумента принимает количество секунд с момента эпохи, и возвращает местное время.

                    
import time

result = time.localtime(1545925769)
print("result:", result)
print("\nyear:", result.tm_year)
print("tm_hour:", result.tm_hour)

Результат:
result: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0)

year: 2018
tm_hour: 15

 time.gmtime()

Функция gmtime(), так же принимает в качестве аргумента количество секунд прошедших с момента эпохи, и возвращает объект struct_time в формате UTC.

                    
import time

result = time.gmtime(1545925769)
print("result:", result)
print("\nyear:", result.tm_year)
print("tm_hour:", result.tm_hour)

Результат:

result = time.struct_time(tm_year=2018, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=44, tm_sec=4, tm_wday=4, tm_yday=362, tm_isdst=0)

year = 2018
tm_hour = 8

 time.mktime

Функция mktime() принимает объект struct_time, по сути данный метод работает обратно относительно функции localtime().

                    
import time

t = (2018, 12, 28, 8, 44, 4, 4, 362, 0)

local_time = time.mktime(t)
print("Local time:", local_time)

Для того, что бы было более понятно о чем идет речь, ниже рассмотрим и localtime() и mktime().

                    
import time

seconds = 1545925769

# returns struct_time
t = time.localtime(seconds)
print("t1: ", t)

# returns seconds from struct_time
s = time.mktime(t)
print("\s:", seconds)

Результат:

t1:  time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0)

s: 1545925769.0

time.asctime

Функция asctime(), так принимает struct_time,  в качестве аргумента, и возвращает строкую. Ниже приведен пример его работы.

                    
import time

t = (2018, 12, 28, 8, 44, 4, 4, 362, 0)

result = time.asctime(t)
print("Result:", result)

Результат:
Result: Fri Dec 28 08:44:04 2018

time.strftime

Функция strftime() принимает struct_time,  в качестве аргумента вернет нам строку, на основе используемого кода формата. В недавней статье мы с вами уже проходили strftime().

                    
import time

named_tuple = time.localtime() # get struct_time
time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple)

print(time_string)

Результат:
12/28/2018, 09:47:41

Более подробно о кодах формата в strftime()

time.strptime

Как и в случае с strftime(), мы с вами уже разбирали работу strptime(). Данная функция анализирует строку, которая представляет время, и возращает результат в struct_time.

                    
import time

time_string = "21 June, 2018"
result = time.strptime(time_string, "%d %B, %Y")

print(result)

Результат:
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=172, tm_isdst=-1)

Более подробно о работе strptime()

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *