我有一个大型销售数据库,第一列是购买日期。问题是其中一些日期是以DD.MM.YY
格式输入的,有些是YY.MM.DD
,有些是YYYY/MM/DD
。我想让它们全部采用相同的格式。我能做到这一点最干净的方法是什么?
注1:我正在考虑做一系列if
,但这将是很多条件,所以我想知道是否有更简洁的捷径。
注2:另一个复杂因素是日期是Jalaali日历而不是Gregorian。我有将它们转换为格里高利的函数,但我需要将正确的year, month, day
参数传递给它;这就是为什么我想将它们全部用于单一格式。但另外,这意味着,如果你提供一些"仅限Gregorian"解决方案,如dateutil.parser
,它可能无效。
答案 0 :(得分:0)
发布此消息后,我立即发现/想到了一个解决方案,但我没有删除问题,而是决定发布答案以防其他人遇到类似的问题。
tl; dr - 我刚刚为dateutil.parser
添加了一个世纪选项。我不知道该怎么做,但我找到了this。
这是我的结束代码:
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