首页 > 解决方案 > 如何在 Python 中将 UTC/扩展格式转换为日期时间

问题描述

我想将日期时间转换%Y-%m-%dSat, 17 Apr 2021 16:17:00 +010017-04-2021

def convertDatetime(data):
    test_datetime = data
    data_new_format = datetime.datetime.strptime(test_datetime,'%- %Y %M %d')
    print(data_new_format)

convertDatetime("Sat, 17 Apr 2021 16:17:00 +0100")

但它说我:'-' is a bad directive in format '%- %Y %M %d'

标签: pythonpython-3.xdatetime

解决方案


您指定的格式'%- %Y %M %d'(1) 包含错误的说明符-,并且 (2)与您要转换的数据完全不匹配。您传递给的格式strptime()必须与数据的外观相匹配,而不是您希望它的外观。

>>> data="Sat, 17 Apr 2021 16:17:00 +0100"
>>> format = "%a, %d %b %Y %H:%M:%S %z"
>>> datetime.datetime.strptime(data, format)
datetime.datetime(2021, 4, 17, 16, 17, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600)))

要按照您想要的方式重新格式化日期时间,您需要第二次调用strftime()

>>> datetime.datetime.strptime(data, format).strftime("%Y-%m-%d")
'2021-04-17'

推荐阅读