Как использовать модуль времени Python
Модуль времени Python предлагает широкий спектр функций, связанных со временем, и часто бывает полезен при создании серверной части с помощью Python. Используя эту библиотеку, вы можете получить текущее время и дату в стандартных форматах. Вы можете рассчитать разницу во времени и запланировать операции, зависящие от времени, в своем коде.
На практических примерах давайте рассмотрим некоторые из наиболее полезных способов использования библиотеки времени.
Начало работы с библиотекой времени
Модуль времени – одно из самых интригующих сокровищ универсального репозитория библиотек Python. Он встроен в Python, поэтому вам не нужно устанавливать его отдельно. Вам просто нужно импортировать его в свой код, чтобы начать его использовать.
Хотя библиотека времени Python имеет множество методов, и поначалу это может показаться ошеломляющим, мы сосредоточимся на тех, которые вы, вероятно, будете использовать чаще всего.
Чтобы начать использовать модуль времени , импортируйте его в свой скрипт с помощью следующего оператора:
import time
Получить эпоху по умолчанию
Сигнатура эпохи библиотеки времени по умолчанию начинается в первый день и час 1970 года в системах Unix. Однако это зависит от платформы. Таким образом, эпоха или время и дата начала могут отличаться в зависимости от используемой вами операционной системы.
Чтобы просмотреть эпоху по умолчанию в вашей ОС:
import time
default_base = time.gmtime(0)
print(default_base)
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)
Приведенный выше вывод кортежа (объект типа time.struct_time ) содержит временную структуру модуля времени . Здесь библиотека по умолчанию хранит данные о дате и времени. В результате tm_year восходит к 1970 году, а некоторые другие свойства имеют нулевое значение по умолчанию. Кстати, gmtime возвращает среднее время по Гринвичу, которое может отличаться от вашего местного часового пояса.
Вместо этого вы можете получить локальную эпоху, используя time.localtime () :
import time
default_base = time.localtime(0)
print(default_base)
Выполнение приведенного выше кода может изменить значения отдельных свойств в зависимости от вашего местного часового пояса. Например, во время британского летнего времени в Великобритании tm_hour будет «1» вместо «0» по Гринвичу.
Смотрите подробности текущего времени и даты
Чтобы получить текущее время как объект time.struct_time , вызовите time.gmtime () без каких-либо аргументов:
import time
current_time = time.gmtime()
print(current_time)
time.struct_time(tm_year=2021, tm_mon=10, tm_mday=2,
tm_hour=11, tm_min=13, tm_sec=18, tm_wday=5,
tm_yday=275, tm_isdst=0)
Как и в предыдущих примерах, замените time.gmtime () на time.localtime (), чтобы увидеть ваше текущее местное время.
Рассчитать время между эпохой и текущим временем
Используйте функцию time.time (), чтобы увидеть количество секунд между текущим временем и эпохой:
import time
print("Time difference in seconds:", time.time())
Time difference in seconds: 1633178361.142249
Чтобы увидеть разницу в году:
import time
# Calculate the number of years:
print("Year difference is approximately:", round(time.time() / (3600 * 365 * 24)), "years")
Year difference is approximately: 52 years
Извлечь текущее местное время
На практике это не всегда необходимо, но вы можете получить доступ к каждому из значений в объекте time.struct_time, напрямую обращаясь к его свойствам.
Например, чтобы получить текущий час, минуту и год из вашего текущего местного времени:
import time
current_local_time = time.localtime()
hours = current_local_time.tm_hour
mins = current_local_time.tm_min
year = current_local_time.tm_year
print(("The local time and year detail are: {}th hour, {}mins, and year {}").format(hours, mins, year))
The local time and year detail are: 11th hour, 49mins, and year 2021
Чтобы автоматизировать вывод вместо жесткого кодирования, как мы делали выше, вы можете вывести текущее местное время с помощью функции time.ctime () .
Вот как посмотреть текущее местное время с помощью time.ctime () :
import time
print(time.ctime())
Sat Oct 2 13:58:07 2021
Но указанный выше вариант не дает вам никакого контроля над выводом.
Чтобы управлять выводом, вы можете преобразовать формат времени в строку с помощью time.strftime () со строковыми аннотациями:
import time
current_local_time = time.localtime()
# Get the current local time:
current_local_time = time.localtime()
# Stringify the current local time using string annotations:
dtime = time.strftime("The date and time is: %a, %d-%b-%Y, %I:%M %p", current_local_time)
print(dtime)
The date and time is: Sat, 02-Oct-2021, 11:57 AM
В приведенном выше коде % a представляет сокращенное название текущего дня. % P представляет утро или день в вашем регионе. На английском это переводится как AM или PM .
Вы можете просмотреть все возможные строковые аннотации для strftime () в документации Python в свободное время. Не стесняйтесь настраивать их по своему усмотрению, чтобы отформатировать время в соответствии с вашими конкретными требованиями. Вы можете поэкспериментировать, добавив в приведенный выше пример дополнительные строковые параметры и посмотрев, что они выводят. Например, вы можете заменить % I на % H, чтобы вместо этого получить 24-часовой формат текущего времени.
Код расписания с модулем времени Python
Вы можете отложить выполнение кода с помощью функции time.sleep () . Эта функция может быть полезна, когда вам нужно запланировать запросы или запустить многопоточную программу с использованием Python.
Посмотрим, как это работает:
import time
time.sleep(3)
print("This post will show after 3 seconds")
Обратите внимание, что time.sleep () принимает только аргументы типа float и integer, которые он переводит в секунды. Поэтому, если вы планируете следующий час или минуту, вам нужно преобразовать их в секунды.
Чтобы отложить вывод на час, например:
time.sleep(3600)
print("This post will show after an hour")
Создайте таймер обратного отсчета, используя time.sleep ()
Использование функции time.sleep () и Python для цикла , давайте создадим таймер обратного отсчета, который принимает ввод пользователя:
import time
print("Start counting seconds from:")
# Create a timer input field that accepts an integer
timer = int(input())
# Increment the timer so that it starts at the specified input
timer = range(timer + 1)
# Assign the length of the timer to a new variable =>
# Then remove one from timer's length to match its index
v = len(timer) - 1
for i in timer:
# Increment the time every one second
time.sleep(1)
# Concatenate the previous count with the next count
# to prevent new line at each iteration
print(timer[v], end = " ", flush=True)
print("", end = "", flush=True)
# Decrease the length of timer input by one for each iteration
v -= 1
Когда вы запускаете приведенный выше код и устанавливаете значение времени, оно уменьшает указанное значение каждую секунду, пока не достигнет нуля.
Правильно используйте библиотеку времени Python
Теперь вы знаете, как получить доступ к текущему времени из кода Python и управлять выводом времени и даты. Модуль времени также является ценным инструментом для отслеживания запросов на стороне сервера, когда вы используете Python для внутреннего программирования.
А поскольку выходные данные в основном являются целыми числами или числами с плавающей запятой, вы можете работать с ними так, как хотите, чтобы получить свое время в часах, днях, месяцах или годах.