Для вычисления разницы между двумя временными метками в Python и получения результата в часах, можно использовать модуль datetime
:
from datetime import datetime
timestamp1 = 1678886400 # Пример timestamp 1
timestamp2 = 1678972800 # Пример timestamp 2
datetime1 = datetime.fromtimestamp(timestamp1)
datetime2 = datetime.fromtimestamp(timestamp2)
difference = datetime2 - datetime1
hours_difference = difference.total_seconds() / 3600
print(hours_difference)
Этот код преобразует временные метки в объекты datetime
, вычисляет разницу между ними, а затем преобразует разницу в секундах в часы.
Для вычисления разницы между двумя временными метками (timestamp) и получения результата в часах на Python можно использовать модуль datetime
и, в частности, класс timedelta
. Вот пример кода:
import datetime
# Предположим, у нас есть две временные метки в формате Unix timestamp (количество секунд с начала эпохи Unix)
timestamp1 = 1678886400 # Пример: 15 марта 2023 00:00:00 UTC
timestamp2 = 1678972800 # Пример: 16 марта 2023 00:00:00 UTC
# Преобразуем временные метки в объекты datetime
datetime1 = datetime.datetime.fromtimestamp(timestamp1)
datetime2 = datetime.datetime.fromtimestamp(timestamp2)
# Вычисляем разницу между двумя datetime объектами
time_difference = datetime2 - datetime1
# Разница будет объектом timedelta, который представляет собой разницу во времени.
# Чтобы получить разницу в секундах, используем time_difference.total_seconds()
seconds = time_difference.total_seconds()
# Переводим секунды в часы
hours = seconds / 3600
# Выводим результат
print(f"Разница между временными метками: {hours} часов")
# Другой пример, если временные метки изначально в строковом формате ISO 8601:
datetime_string1 = "2023-03-15T00:00:00Z"
datetime_string2 = "2023-03-16T12:00:00Z"
datetime1 = datetime.datetime.fromisoformat(datetime_string1.replace("Z", "+00:00")) #replace Z for timezone
datetime2 = datetime.datetime.fromisoformat(datetime_string2.replace("Z", "+00:00"))
time_difference = datetime2 - datetime1
hours = time_difference.total_seconds() / 3600
print(f"Разница между временными метками (ISO): {hours} часов")
Пояснения:
datetime.datetime.fromtimestamp(timestamp)
: Преобразует Unix timestamp (секунды с начала эпохи) в объект datetime
.datetime.datetime.fromisoformat(datetime_string)
: Преобразует строку в формате ISO 8601 в объект datetime
. Важно учесть часовой пояс, если он указан в строке. В примере выше, замена "Z" на "+00:00" говорит о нулевом смещении от UTC.time_difference = datetime2 - datetime1
: Вычисляет разницу между двумя объектами datetime
. Результатом является объект timedelta
.time_difference.total_seconds()
: Возвращает общее количество секунд, представленное разницей во времени (объектом timedelta
).hours = seconds / 3600
: Преобразует секунды в часы.Дополнительные замечания:
pytz
(сторонний пакет) часто используется для работы с часовыми поясами.datetime
.