Разница между Python datetime и модулями времени

Я пытаюсь выяснить различия между модулями datetime и time, и для чего каждый должен использоваться.

Я знаю, что datetime предоставляет как даты, так и время. Каково использование модуля time?

Были бы оценены примеры, и особенно интересны различия в отношении часовых поясов.

Ответ 1

модуль time предназначен, главным образом, для работы с отметками времени unix; выраженное как число с плавающей запятой, взятое за секунды с момента unix. модуль datetime может поддерживать многие из тех же операций, но предоставляет более объектно-ориентированный набор типов, а также имеет ограниченную поддержку часовых поясов.

Ответ 2

Модуль времени может использоваться, когда вам просто нужно время определенной записи - например, скажем, у вас есть отдельная таблица/файл для транзакций за каждый день, тогда вам просто нужно время. Однако тип данных времени обычно используется для хранения разницы во времени между двумя точками времени.

Это также можно сделать с помощью datetime, но если мы имеем дело только со временем для определенного дня, тогда можно использовать модуль времени.

Datetime используется для хранения конкретных данных и времени для записи. Как в агентстве по прокату. Назначение должно было бы представлять собой тип данных datetime.

Ответ 3

Придерживайтесь time чтобы предотвратить двусмысленность DST.

Используйте исключительно модуль системного time вместо модуля datetime чтобы избежать проблем с неоднозначностью при переходе на летнее время (DST).

Преобразование в любой формат времени, включая местное, довольно просто:

import time
t = time.time()

time.strftime('%Y-%m-%d %H:%M %Z', time.localtime(t))
'2019-05-27 12:03 CEST'

time.strftime('%Y-%m-%d %H:%M %Z', time.gmtime(t))
'2019-05-27 10:03 GMT'

time.time() - это число с плавающей запятой, представляющее время в секундах с начала системы. time.time() идеально подходит для однозначных time.time() времени.

Если система дополнительно запускает демон протокола сетевого времени (NTP), получается довольно солидная временная база.

Вот документация time модуля.

Ответ 4

Если вас интересуют часовые пояса, вы должны рассмотреть возможность использования pytz.