此 datetime.strptime 函数的正确代码格式是什么?

时间:2021-06-28 22:28:47

标签: python datetime

我有一个 Python 程序,可以摄取和处理数据,但有一个字段没有正确转换。一条数据以 java.time.OffsetDateTime.now(ZoneOffset.UTC) 字符串的形式出现,我们使用 strptime 创建一个日期时间对象。这是简化的代码:

$ python

from datetime import datetime

# source string format: (java.time.OffsetDateTime.now(ZoneOffset.UTC))
date_string = "2021-06-28T19:47:27.510670082Z"

# this works yet is not in the source format
date_string = "2021-06-28T19:47:27.510670"

datetime_object = datetime.strptime(date_string, '%Y-%m-%dT%H:%M:%S.%f')

print (datetime_object)

导致此错误

ValueError: unconverted data remains: 082Z

创建日期时间对象的正确格式代码是什么?

1 个答案:

答案 0 :(得分:0)

use dateutil。您有时间以 ISO 8601 格式设置时区

    from dateutil import parser
    
    # source string format: (java.time.OffsetDateTime.now(ZoneOffset.UTC))
    date_string = "2021-06-28T19:47:27.510670082Z"
    
    datetime_object = parser.parse(date_string)
    print(datetime_object)  # 2021-06-28 19:47:27.510670+00:00