python中的箭头库导致不同的日期

时间:2017-03-26 22:55:01

标签: python datetime python-arrow

(Pdb) arrow.get('2016-01-01')
<Arrow [2016-01-01T00:00:00+00:00]>
(Pdb) arrow.get('20160101')
<Arrow [1970-08-22T08:01:41+00:00]>

所以,我希望我的函数能够在python中使用arrow库来解析日期字符串。但是,从上面的代码可以看出,它根据日期字符串中是否存在-给出了不同的结果。如何对其进行修改以便为两者提供相同的结果?

1 个答案:

答案 0 :(得分:2)

只需为第二个对象提供格式字符串

arrow.get('20160101', 'YYYYMMDD')

库可能默认为iso标准日期格式,但如果你不使用它,你需要告诉它如何解释字符串。

在REPL中

>>> arrow.get('2016-01-01')
<Arrow [2016-01-01T00:00:00+00:00]>
>>> arrow.get('20160101', 'YYYYMMDD')
<Arrow [2016-01-01T00:00:00+00:00]>

要在短划线存在与否时使用公共呼叫,您可以删除短划线

import arrow
vals = ['2016-01-01', '20160101']

for v in vals:
    d = v.replace('-', '')
    print(arrow.get(d, 'YYYYMMDD'))