如何使用 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'
我有这个字符串
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'