Время эпохи, также известное как 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}")

Посмотрите на скриншот ниже:

преобразовать миллисекунды эпохи в datetime python

Заключение

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

Добавить комментарий