【问题标题】:python 3 datetime.strptime doesn't work with German formatpython 3 datetime.strptime 不适用于德语格式
【发布时间】:2019-08-12 03:20:40
【问题描述】:

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

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

【问题讨论】:

  • 这个问题可能会有所帮助:stackoverflow.com/questions/28429512/…。在 sumarry 中,您首先必须将语言环境更改为德国,然后它将解析几个月的德语
  • 我找到了简单的方法,使用“dateparser”库。 import dateparser print(dateparser.parse('24. Juli 2017').strftime('%d.%m.%Y')) 完美运行

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


【解决方案1】:

您必须修复格式(忘记后天的点)并且必须将语言环境设置为“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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 2017-07-19
    相关资源
    最近更新 更多