python 中箭头库的不同日期结果
Different date results from arrow library in python
(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
库来解析日期字符串。但是,从上面的代码可以看出,根据 -
是否出现在日期字符串中,它会给出不同的结果。我怎样才能修改它,以便它为两者提供相同的结果?
只需为第二个对象提供格式字符串
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'))
(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
库来解析日期字符串。但是,从上面的代码可以看出,根据 -
是否出现在日期字符串中,它会给出不同的结果。我怎样才能修改它,以便它为两者提供相同的结果?
只需为第二个对象提供格式字符串
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'))