Получить текущую дату из datetime.datetime - PullRequest
1 голос
/ 30 сентября 2019

Я пытаюсь получить текущую дату, чтобы передать ее в поле DATE в SQL. Я использую datetime.datetime, ниже мой код:

from datetime import datetime

dt = datetime.strptime(datetime.today().date(), "%m/%d/%Y").date()

Однако, я получаю эту ошибку:

TypeError: strptime() argument 1 must be str, not datetime.datetime

Как я могу исправитьвопрос выше? Я все еще не совсем понимаю, что такое datetime и datetime.datetime, и я хочу продолжать использовать from datetime import datetime, а не import datetime.

. Как я могу решить проблему выше? спасибо

Ответы [ 2 ]

1 голос
/ 30 сентября 2019

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

>>> datetime.today().date()
datetime.date(2019, 9, 30)
>>> str(datetime.today().date())
'2019-09-30'

Вы заметите, что возвращаемое время-дата разделено -, и вам придется явно преобразовать его в строковое значение. Следовательно, чтобы вышеприведенный оператор работал, измените его на:

dt = datetime.strptime(str(datetime.today().date()), "%Y-%M-%d").date()

Затем измените его на любой формат, который вы хотите использовать strftime (в вашем случае >>> "%d/%m/%Y")

>>> dt.strftime("%d/%m/%Y")
'30/01/2019'
0 голосов
/ 30 сентября 2019

Просто используйте datetime.strftime:

from datetime import datetime

dt = datetime.today().strftime("%m/%d/%Y")
print(dt)

Печать:

'09/30/2019'

strptime принимает строку и создает объект datetime. В то время как strftime делает прямо противоположное, беря объект datetime и возвращая строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...