python 3 datetime.strptime不适用于德语格式

时间:2019-03-21 09:46:15

标签: python-3.x datetime date-format strptime

需要将德语字符串更改为日期。我尝试使用以下代码:

from datetime import datetime
datetime_object = datetime.strptime('24. Juli 2017', '%d %B %Y')
print(datetime.strftime(datetime_object, '%d.%m.%Y'))

此代码失败,并出现下一个错误:

ValueError: time data '24. Juli 2017' does not match format '%d %B %Y'

但是它可以正确显示英文文本:

datetime_object = datetime.strptime('24 July 2017', '%d %B %Y')
print(datetime.strftime(datetime_object, '%d.%m.%Y'))

输出:

24.07.2017

1 个答案:

答案 0 :(得分:0)

您必须修复格式(一天之后忘记点号),并且必须将语言环境设置为“ de_DE”。

>>> from datetime import datetime
>>> import locale
>>> locale.setlocale(locale.LC_TIME, "de_DE") # german
'de_DE'
>>> datetime.strptime('24. Juli 2017', '%d. %B %Y')
datetime.datetime(2017, 7, 24, 0, 0)