Разница между 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.