我有这个字符串
14 Mai 2014
我想将其转换为 iso 8601
我阅读了this answer和this one,
首先我尝试将字符串转换为日期,然后在i中将其转换为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'
答案 0 :(得分:4)
根据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
答案 1 :(得分:2)
您需要使用%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'