Python Can';t将带有时区的日期转换为自定义日期

Python Can';t将带有时区的日期转换为自定义日期,python,datetime,Python,Datetime,我正在尝试将日期从2016-04-30T00:00:00Z转换为2016-04-30。我从前两个方面获得成功。但是,对于最后一个,我得到了ValueError:时间数据'2021-12-31T15:28:43.040Z'与格式'%Y-%m-%dT%H:%m:%SZ'不匹配。。我怎样才能修好它 我试过: from datetime import datetime date_list = [ '2016-04-30T00:00:00Z', '2007-10-31T00:00:00Z

我正在尝试将日期从
2016-04-30T00:00:00Z
转换为
2016-04-30
。我从前两个方面获得成功。但是,对于最后一个,我得到了
ValueError:时间数据'2021-12-31T15:28:43.040Z'与格式'%Y-%m-%dT%H:%m:%SZ'不匹配。
。我怎样才能修好它

我试过:

from datetime import datetime

date_list = [
    '2016-04-30T00:00:00Z',
    '2007-10-31T00:00:00Z',
    '2021-12-31T15:28:43.040Z'
]

for raw_date in date_list:
    _date = datetime.strptime(raw_date, '%Y-%m-%dT%H:%M:%SZ').strftime('%Y-%m-%d')
    print(_date)

如果您可以使用名为
pandas
的库,则会更容易:

from pandas import to_datetime
date_list = [
    '2016-04-30T00:00:00Z',
    '2007-10-31T00:00:00Z',
    '2021-12-31T15:28:43.040Z'
]
print(to_datetime(date_list).strftime('%Y-%m-%d'))
如果您没有该库,请尝试以下操作:

date_list = [
    '2016-04-30T00:00:00Z',
    '2007-10-31T00:00:00Z',
    '2021-12-31T15:28:43.040Z'
]

for raw_date in date_list:
    _date = raw_date.split('T')[0]
    print(_date)

如果您可以使用名为
pandas
的库,则会更容易:

from pandas import to_datetime
date_list = [
    '2016-04-30T00:00:00Z',
    '2007-10-31T00:00:00Z',
    '2021-12-31T15:28:43.040Z'
]
print(to_datetime(date_list).strftime('%Y-%m-%d'))
如果您没有该库,请尝试以下操作:

date_list = [
    '2016-04-30T00:00:00Z',
    '2007-10-31T00:00:00Z',
    '2021-12-31T15:28:43.040Z'
]

for raw_date in date_list:
    _date = raw_date.split('T')[0]
    print(_date)

快速修复,我会这样做

日期列表中的原始日期的
:
_date=datetime.strTime(原始日期分割('T')[0],'%Y-%m-%d')。strftime('%Y-%m-%d'))
打印(_日期)

日期列表中的原始日期的
:
_日期=原始日期。拆分('T')[0]
打印(_日期)

快速修复,我会这样做

日期列表中的原始日期的
:
_date=datetime.strTime(原始日期分割('T')[0],'%Y-%m-%d')。strftime('%Y-%m-%d'))
打印(_日期)

日期列表中的原始日期的
:
_日期=原始日期。拆分('T')[0]
打印(_日期)

如果日期一致,只需使用
原始日期[:10]
'2021-12-31T15:28:43.040Z'将是“%Y-%m-%dT%H:%m:%S.%f%z”。如果日期一致,只需使用
原始日期[:10]
'2021-12-31T15:28:43.040Z'将是“%Y-%m-%dT%H:%S.%f%z”。