Эффективный формат даты - PullRequest
2 голосов
/ 11 июля 2020

Какой наиболее эффективный способ выполнить следующее форматирование даты в Python?

import re


def f(date):
    month = {"Jan": '01', "Feb": '02', "Mar": '03', "Apr": '04', "May": '05', "Jun": '06',
             "Jul": '07', "Aug": '08', "Sep": '09', "Oct": '10', "Nov": '11', "Dec": '12'}
    d = date.split()
    d[0] = re.match(r'^\d+', d[0]).group(0)
    if len(d[0]) < 2:
        d[0] = f'0{d[0]}'
    d[1] = month[d[1]]

    return '-'.join(d[::-1])


print(f("20th Oct 2052"))
print(f("6th Jun 1933"))
print(f("26th May 1960"))


Желаемый результат

2052-10-20
1933-06-06
1960-05-26

1 Ответ

2 голосов
/ 11 июля 2020
from dateutil.parser import parse
d=parse("20th Oct 2052")
d1=parse("3rd May 2020")
print(d)
print(d1)

Вывод:

datetime.datetime(2052, 10, 20, 0, 0)
datetime.datetime(2020, 5, 3, 0, 0)

Используя указанную выше дату и время, вы можете легко преобразовать в желаемый формат

d.strftime("%Y-%m-%d")
d1.strftime("%Y-%m-%d")

Вывод:

'2052-10-20'
'2020-05-03'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...