Формат даты организации (негригорианский календарь) - Python 3
У меня есть большая база данных продаж, первый столбец которой - дата покупки. Проблема в том, что некоторые из этих дат введены в DD.MM.YY
формат, некоторые в YY.MM.DD
а некоторые в YYYY/MM/DD
, Я хочу сделать их все в одном формате. Какой самый чистый способ, которым я могу сделать это?
Примечание 1: я думаю сделать серию if
с, но это было бы много условий, поэтому мне интересно, если есть более чистый ярлык.
Примечание 2: Дополнительным осложнением является то, что даты указаны в календаре Джалали, а не в григорианском. У меня есть функция, которая преобразует их в григорианский, но мне нужно передать правильный year, month, day
аргументы этому; Вот почему я хочу привести их все в один формат. Но, кроме того, это означает, что если вы предлагаете некоторые "григорианские" решения, такие как dateutil.parser
, это может не сработать.
1 ответ
Сразу после публикации я сам нашел / подумал о решении, но вместо того, чтобы удалить вопрос, я решил опубликовать ответ на случай, если кто-то еще столкнется с подобной проблемой.
tl; dr - я только что добавил опцию века dateutil.parser
, Я не знал как, но я нашел это.
Вот мой код конца:
from khayyam import JalaliDate
from dateutil.parser import parse, parserinfo
class MyParserInfo(parserinfo):
def convertyear(self, year, *args, **kwargs):
if year < 100:
year += 1300
return year
if __name__ == '__main__':
dt = parse("9.12.96", MyParserInfo()).date()
a=JalaliDate(dt.year, dt.month, dt.day).todate()
print(dt)
print(a)
#1396-09-12
#2017-12-03