Время эпохи, также известное как 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, а также изучили более сложные аспекты, такие как преобразование времени эпохи с учётом часовых поясов и преобразование миллисекунд эпохи в дату и время.