python
November 23, 2022

Модуль time для работы с датой и временем в Python

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

Функция time позволяет вывести количество секунд, прошедших с начала эпохи (1970 год):

import time

time.time()

Она обычно используется для замера времени выполнения блока кода.
С помощью функции strptime можно преобразовать строку в объект даты и времени (struct_time):

s = '2022-10-03 05:44:01'
t = time.strptime(s, '%Y-%m-%d %H:%M:%S')
t

Функция mktime умеет переводить struct_time в количество секунд, прошедших с начала эпохи в локальном часовом поясе:

sec = time.mktime(t)
sec

localtime и gmtime принимают количество секунд, прошедших с начала эпохи, и могут перевести его в struct_time для локального и нулевого пояса (формат UTC):

time.localtime(sec)
time.gmtime(sec)

Таким образом, возможны взаимные преобразования между секундным, строчным и struct_time представлениями времени:

Направление "сек - строка"

s = 123456789
display(s)
display(time.localtime(s))
display(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(s)))

Направление "строка - сек"

s = '1973-11-30 00:33:09'
display(s)
display(time.strptime(s, '%Y-%m-%d %H:%M:%S'))
display(time.mktime(time.strptime(s, '%Y-%m-%d %H:%M:%S')))