strptime之后更改日期类型然后strftime?

时间:2016-07-13 17:57:05

标签: python datetime

Python新手,所以我有如下问题。为什么a不等于b?谢谢。

fundData['SigDate']
    0         31DEC2008
    1         31JAN2009
    2         28FEB2009
    3         31MAR2009
    4         30APR2009
a=fundData['SigDate']
b=fundData['SigDate'].apply(lambda x : datetime.strptime(x,'%d%b%Y').strftime('%d%b%Y'))
a==b
    0         False
    1         False
    2         False
    3         False

1 个答案:

答案 0 :(得分:1)

'strptime/strftime'转换会在月份条目的句子案例中返回一个字符串,因此您的比较正确False

>>> from datetime import datetime as dt
>>>
>>> x = "31DEC2008"
>>> dt.strptime(x,'%d%b%Y').strftime('%d%b%Y')
'31Dec2008'
>>>
>>> '31Dec2008' == '31DEC2008'
False

您可以在 lambda 函数中返回的字符串上调用upper以使它们匹配:

>>> dt.strptime(x,'%d%b%Y').strftime('%d%b%Y').upper()
'31DEC2008'