如何使用 Python 将此字符串转换为 iso 8601

How convert this string to iso 8601 with Python

我有这个字符串

14 Mai 2014

我想把它转换成iso 8601

我读了this answer and this one

首先我尝试将字符串转换为日期,然后将其转换为 iso 格式:

test_date = datetime.strptime("14 Mai 2014", '%d %m %Y')
iso_date = test_date.isoformat()

我得到这个错误:

ValueError: time data '14 Mai 2014' does not match format '%d %m %Y'

根据 Python strftime reference %m 表示一个月中的第几天,在您的情况下 "Mai" 似乎是您当前语言环境中的月份名称,您必须使用此 %b 格式。所以你的代码应该是这样的:

test_date = datetime.strptime("14 Mai 2014", '%d %b %Y')
iso_date = test_date.isoformat()

别忘了设置语言环境。

适用于英语语言环境:

>>> from datetime import datetime
>>> test_date = datetime.strptime("14 May 2014", '%d %b %Y')
>>> print(test_date.isoformat())
2014-05-14T00:00:00

您需要使用 %b 令牌而不是 %m
要使用 %b 令牌,您必须设置语言环境。
Python Documentation

import datetime
import locale

locale.setlocale(locale.LC_ALL, 'fr_FR')
test_date = datetime.datetime.strptime("14 Mai 2014", '%d %b %Y')
iso_date = test_date.isoformat()

结果会是'2014-05-14T00:00:00'