【问题标题】:How to convert the string['2019-06-01T23:07:02.000+0000'] to datetime object in Python 3如何在 Python 3 中将字符串 ['2019-06-01T23:07:02.000+0000'] 转换为日期时间对象
【发布时间】:2019-10-18 06:19:52
【问题描述】:

我从 JSON 对象获取以下格式的日期时间字符串,我想将其转换为 Python 中的日期时间对象,以便在我的代码中使用它。

'2019-06-01T23:07:02.000+0000'

如您所见,上面的字符串包含毫秒,我在 strptime 方法中找不到它的格式化程序。

datetime.strptime(incOpenTime, '%Y-%m-%dT%H:%M:%S.%fZ') #this works only against microseconds

我可以解析字符串并将其提供给 datetime 对象,但我希望使用直接的 strptime 格式。

【问题讨论】:

  • 您可以使用更新的字符串格式,也可以使用dateutil.parser.parse,在@ManikandarajS 下方查看我的答案

标签: python python-3.x datetime strptime


【解决方案1】:

您可能希望将格式化程序字符串更改为 '%Y-%m-%dT%H:%M:%S.%f%z

In [25]: datetime.strptime('2019-06-01T23:07:02.000+0000','%Y-%m-%dT%H:%M:%S.%f%z')                                                                                           
Out[25]: datetime.datetime(2019, 6, 1, 23, 7, 2, tzinfo=datetime.timezone.utc)

或者你也可以使用datetutil.parser,不需要你提供格式字符串

'2019-06-01T23:07:02.000+0000'
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-d8d1b2eea17c> in <module>
----> 1 from datetutil import parser

ModuleNotFoundError: No module named 'datetutil'

In [2]: from dateutil import parser                                                                                                                                                    
In [4]: parser.parse('2019-06-01T23:07:02.000+0000')                                                                                                                                   
Out[4]: datetime.datetime(2019, 6, 1, 23, 7, 2, tzinfo=tzutc())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2021-11-30
    相关资源
    最近更新 更多