【问题标题】:Different date results from arrow library in pythonpython中箭头库的不同日期结果
【发布时间】:2017-03-26 22:55:01
【问题描述】:
(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 库来解析日期字符串。但是,从上面的代码可以看出,它会根据日期字符串中是否存在- 给出不同的结果。如何修改它以使两者的结果相同?

【问题讨论】:

    标签: python datetime python-arrow


    【解决方案1】:

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

    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'))
    

    【讨论】:

    • 感谢@Paul!我希望代码能够灵活地处理任何一种格式。有没有办法处理有或没有-
    • 嗯,它有点老套,但你可以去掉(或相反地添加)- 字符。
    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 2020-04-30
    • 2018-10-27
    相关资源
    最近更新 更多