Удалить время в формате даты в Python - PullRequest
0 голосов
/ 20 февраля 2020

Я использую:

s = "20200113"
final = datetime.datetime.strptime(s, '%Y%m%d')

Мне нужно преобразовать число в формат даты (2020-01-13), но когда я печатаю окончательно:

2020-01-13 00:00:00

Tried datetime.date ( s, '% Y% m% d'), но возвращает ошибку:

an integer is required (got type str)

Есть ли какая-либо команда для получения только даты без часа?

Ответы [ 4 ]

1 голос
/ 20 февраля 2020

Вы можете использовать strftime для конвертации обратно в нужный вам формат:

import datetime
s = "20200113"

temp = datetime.datetime.strptime(s, '%Y%m%d')
# 2020-01-13 00:00:00

final = temp.strftime('%Y-%m-%d')
print(final)
# 2020-01-13
1 голос
/ 20 февраля 2020

Использование datetime.date(year, month, day). Нарезать строку и преобразовать в целые числа, чтобы получить год, месяц и день. Теперь это datetime.date объект, вы можете использовать его для других целей. Здесь, однако, мы используем .strftime, чтобы преобразовать его обратно в текст в желаемом формате.

s = "20200113"
year = int(s[:4])  # 2020
month = int(s[4:6])  # 1
day = int(s[6:8])  # 13
>>> datetime.date(year, month, day).strftime('%Y-%m-%d')
'2020-01-13'

Вы также можете конвертировать напрямую через строки.

>>> f'{s[:4]}-{s[4:6]}-{s[6:8]}'
'2020-01-13'
1 голос
/ 20 февраля 2020

Если у вас есть объект datetime, просто используйте strftime

import datetime
d = datetime.datetime.now()  # Some datetime object.
print(d.strftime('%Y-%m-%d'))

, что дает

2020-02-20
0 голосов
/ 20 февраля 2020

Вы можете использовать .date() на datetime объектах, чтобы «удалить» время.

my_time_str = str(final.date())

даст вам желаемый результат

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