微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

datetime.strptime格式与格式'%d不匹配 %B%Y'

如何解决datetime.strptime格式与格式'%d不匹配 %B%Y'

我想将字符串日期类型转换为dd-mm-yyyy

date_stringg='24. Juli 2020'

date_object = datetime.strptime((date_stringg),"%d. %B %Y")

print("date_object: ",date_object)

enter image description here

解决方法

您可能需要设置区域设置。 Juli在英语中不是有效的月份名称,我假设它是荷兰语。

假设您要在日期时间中使用荷兰语言环境,则可以执行以下操作

import locale
locale.setlocale(locale.LC_TIME,"nl_nl")

此后,它将识别Juli,因此可以正常工作

>>> date_stringg='24. Juli 2020'
>>> 
>>> date_object = datetime.strptime((date_stringg),"%d. %B %Y")
>>> date_object
datetime.datetime(2020,7,24,0)
,

这看起来像语言环境设置问题。请参见下面的示例:

>>> locale.setlocale(locale.LC_ALL,'C')
'C'
>>> datetime.datetime.strptime('24. Julho 2020','%d. %B %Y')
Traceback (most recent call last):
  File "<stdin>",line 1,in <module>
  File "/usr/local/lib/python3.8/_strptime.py",line 568,in _strptime_datetime
    tt,fraction,gmtoff_fraction = _strptime(data_string,format)
  File "/usr/local/lib/python3.8/_strptime.py",line 349,in _strptime
    raise ValueError("time data %r does not match format %r" %
ValueError: time data '24. Julho 2020' does not match format '%d. %B %Y'
>>> locale.setlocale(locale.LC_ALL,'pt_PT.utf8')
'pt_PT.utf8'
>>> datetime.datetime.strptime('24. Julho 2020','%d. %B %Y')
datetime.datetime(2020,0)

您可能需要在要解析的字符串中选择(并可能安装/配置您的基础系统)所用语言。 在示例中,您看到我用葡萄牙语写了字符串“ Julho”(7月),因此必须启用适当的语言环境。

另请参见setting the locale

上的Python文档

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。