Время эпохи, также известное как UNIX-время, представляет собой систему отсчёта времени, основанную на количестве секунд, прошедших с полуночи 1 января 1970 года по всемирному координированному времени (UTC). Это время не учитывает дополнительные секунды, которые иногда добавляются для коррекции времени. UNIX-время широко используется в компьютерных системах для записи времени.
В Python вы можете получить время текущей эпохи, используя модуль времени:
import time
epoch_time = time.time()
print(f"Current epoch time: {epoch_time}")
- Базовое преобразование
- Пример
- С помощью часового пояса
- Пример
- Преобразование миллисекунд
- Пример
- Заключение
Базовое преобразование
Чтобы преобразовать временную метку эпохи в дату и время в Python, мы можем воспользоваться модулем datetime. В этом модуле есть метод fromtimestamp(), который принимает в качестве аргумента временную метку эпохи и возвращает объект datetime.
Пример
import time
from datetime import datetime
# Getting current epoch time
epoch_time = time.time()
# Converting epoch time to datetime
datetime_object = datetime.fromtimestamp(epoch_time)
print(f"Epoch time: {epoch_time}")
print(f"Datetime: {datetime_object}")
Вы можете увидеть результат на скриншоте ниже:

С помощью часового пояса
При преобразовании времени в эпоху в дату и время также необходимо учитывать часовые пояса. В Python для работы с часовыми поясами используется библиотека pytz.
Чтобы преобразовать время эпохи в дату и время с учётом часового пояса, можно воспользоваться методом fromtimestamp() модуля datetime, передав в него параметр tz.
Пример
import time
from datetime import datetime
import pytz
# Getting current epoch time
epoch_time = time.time()
# Define a timezone
timezone = pytz.timezone('US/Eastern')
# Convert epoch to datetime with timezone
datetime_with_timezone = datetime.fromtimestamp(epoch_time, tz=timezone)
print(f"Epoch time: {epoch_time}")
print(f"Datetime with timezone: {datetime_with_timezone}")
Вы можете увидеть скриншот ниже:

Преобразование миллисекунд
Иногда время эпохи может быть представлено в миллисекундах, а не только в секундах. Поскольку функция fromtimestamp() ожидает время эпохи в секундах, вам потребуется преобразовать миллисекунды в секунды перед тем, как преобразовывать их в дату и время в Python.
Пример
from datetime import datetime
# Epoch time in milliseconds
epoch_milliseconds = 1627939200000
# Convert milliseconds to seconds
epoch_seconds = epoch_milliseconds / 1000.0
# Convert epoch time to datetime
datetime_object = datetime.fromtimestamp(epoch_seconds)
print(f"Epoch time in milliseconds: {epoch_milliseconds}")
print(f"Datetime: {datetime_object}")
Посмотрите на скриншот ниже:

Заключение
В этом руководстве вы узнали, как преобразовывать время эпохи в дату и время в языке программирования Python. Мы рассмотрели основные методы преобразования с использованием функции fromtimestamp() из модуля datetime, а также изучили более сложные аспекты, такие как преобразование времени эпохи с учётом часовых поясов и преобразование миллисекунд эпохи в дату и время.