Как мне конвертировать мою дату в немного другой формат - PullRequest
0 голосов
/ 13 апреля 2020

date = '9/4/2020'.

Теперь в Excel я конвертировал, используя формат TEXT (дата, 'YYYYMMDD'), как мне повторить то же самое в python?

Я пытался использовать функцию даты и времени

d = datetime.strptime(date, '%Y%m%d')

, но я получаю ошибку значения ValueError: time data '9/4/2020' does not match format '%Y%m%d'

как это исправить?

Ответы [ 4 ]

0 голосов
/ 13 апреля 2020

Это должно делать то, что вы хотите:

d = datetime.strptime(date, '%d/%M/%Y')  # Convert string to date
new_date_format = d.strftime("%Y%m%d")  # Set your custom date format
print('My new Date format: {}'.format(new_date_format)). # Print the result
0 голосов
/ 13 апреля 2020

Не уверен, если вы хотите вывод, как это:

date = '9/4/2020'
d = datetime.datetime.strptime(date, '%d/%M/%Y')
print(d)

Вывод:

2020-01-09 00:04:00
0 голосов
/ 13 апреля 2020

сначала вам нужно использовать строчные буквы m в формате. после преобразования в дату и время просто конвертируйте обратно в строку, используя strftime

d = datetime.strptime(date, '%d/%m/%Y').strftime('%Y%m%d')

другой вариант - просто разделить дату строки:

f"{date.split('/')[2]}{date.split('/')[1].zfill(2)}{date.split('/')[0].zfill(2)}"

'20200409'
0 голосов
/ 13 апреля 2020

В Python это называется strptime (время разбора строки, ie получить объект времени из строки) и strftime (строка из времени, получить представление строки из объекта времени - обратный процесс) .

Различные символы времени перечислены в Python документации здесь . Вам необходимо описать способ точного форматирования времени, включая разделители (например, / или -). Между ними вы обозначаете год, месяц, день и т. Д. c. согласно коду в документах. Итак, в вашем случае:

d = datetime.strptime(date, '%d/%M/%Y')

Получит вам объект времени, а затем вы можете использовать

print(datetime.strftime(d, '%Y%M%d'))

, чтобы получить новый.

Или в одном строка:

d = strftime(strptime('9/4/2020', '%d/%M/%Y'), '%Y%M%d')

должна работать. (Предполагается, что день наступит раньше.)

...