Всякий раз, когда мне приходится иметь дело с датами и временем в Python, мне обычно приходится каждый раз гуглить. И вскоре после этого забудешь, как с этим бороться. Вот несколько распространенных способов использования даты и времени в Python.

1) Получение текущей даты и времени (сейчас)

from datetime import datetime

print(datetime.now())
# 2023-09-06 23:01:47.856251

Примечание: нам не нужно устанавливать datetime, поскольку он встроен.

2) Создание конкретной даты

Допустим, я хочу создать конкретный объект datetime на 24 октября 2023 года.

from datetime import datetime

print(datetime(2023, 10, 24))
# 2023-10-24 00:00:00
  • 1-й аргумент — год
  • 2-й аргумент — месяц
  • 3-й аргумент — день месяца

3) Создание конкретной даты+времени

Допустим, я хочу добавить время и создать конкретный объект datetime для 24 октября 2023 года, 11:00:05.

from datetime import datetime

print(datetime(2023, 10, 24, 11, 0, 5))
# 2023-10-24 11:00:05

И здесь у нас есть объект datetime с точностью до секунды.

  • Первые 3 аргумента: год, месяц, день.
  • следующие 3 аргумента: час, минута, секунда

4) Преобразование строки в объект datetime

Допустим, у нас есть строка '2023-12-24', и мы хотим преобразовать ее в объект datetime. Вот как мы можем сделать это не вручную

from datetime import datetime

string = '2023-12-24'
print(datetime.strptime(string, '%Y-%m-%d'))

# 2023-12-24 00:00:00

В качестве второго аргумента нам нужно ввести формат нашей строки даты и времени. Здесь наша строка формата %Y-%m-%d должна соответствовать формату даты, в котором находится 2023-12-24 (иначе ошибка). Например:

from datetime import datetime

string = '2023-dec-24'
print(datetime.strptime(string, '%Y-%b-%d'))

# 2023-12-24 00:00:00

Здесь вместо 12 в нашей строке стоит dec. Итак, наш %m должен измениться на %b. Чтобы узнать, какие строки формата использовать, мы можем посетить https://docs.python.org/3/library/datetime.html#format-codes.