我遇到了一个与其中一个模块有关的问题。由于数据处理程序的要求,其中一个模块必须使用datetime
库和strptime
函数。但是,当格式为MMDDYYYY
的日期系列中最左边的零被截断时,代码行为似乎并不一致。下面是一些示例,您可以看到第二个和第三个命令相同但月份已损坏。无论如何处理它?</ p>
>>> datetime.strptime('01082018',"%m%d%Y")
datetime.datetime(2018, 1, 8, 0, 0)
>>> datetime.strptime('1082018',"%m%d%Y")
datetime.datetime(2018, 10, 8, 0, 0)
>>> datetime.strptime('8082018',"%m%d%Y")
datetime.datetime(2018, 8, 8, 0, 0)
>>> datetime.strptime('08082018',"%m%d%Y")
datetime.datetime(2018, 8, 8, 0, 0)
答案 0 :(得分:1)
您可以尝试将其拆分为两个多个命令,并附加一个零(如果需要)
>>> date_str = '01082018'
>>> if len(date_str)==7:
>>> date_str = '0'+date_str
>>> datetime.strptime(date_str ,"%m%d%Y")
datetime.datetime(2018, 1, 8, 0, 0)
和
>>> date_str = '8082018'
>>> if len(date_str)==7:
>>> date_str = '0'+date_str
>>> datetime.strptime(date_str ,"%m%d%Y")
datetime.datetime(2018, 8, 8, 0, 0)