Python日期时间库无法处理01022018,即MMDDYYYY格式时最左边的零被截断

时间:2018-03-22 19:56:13

标签: python datetime

我遇到了一个与其中一个模块有关的问题。由于数据处理程序的要求,其中一个模块必须使用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)

1 个答案:

答案 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)