Дата и время в Python
В Python для описания даты и времени используется 3 разных объекта:
date
для хранения даты “25 декабря 2018г.”time
для времени без датыdatetime
для времени с датой “25 декабря 2018г., 21:01:54”
Все объекты живут в модуле datetime
:
import datetime
print(datetime.datetime.now())
print(datetime.date.today())
В модуле datetime
есть отдельный объект timezone
для хранения часового пояса: UTC, UTC+3h, UTC-8 и другие. Объекты time
и datetime
могут хранить время с учетом часового пояса или без.
Работать с часовыми поясами сложно: приходится учитывать летнее и зимнее время, следить за изменениями в законодательстве разных стран. В Python для этих целей есть популярная библиотека pytz. Она поставляется со своей базой данных и регулярно обновляется.
Чтобы избежать работы с часовыми поясами используют Unix Timestamp. Это число с количеством секунд, прошедших с полуночи 1 января 1970 года по UTC. Timestamp не зависит от часового пояса и выражается одним числом 1546704810.414488
. Такой формат удобен при передаче и хранении данных, но непонятен человеку.
Все форматы даты и времени можно конвертировать один в другой. Это не тривиально, но спасает StackOverflow.