如何解决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)
解决方法
您可能需要设置区域设置。 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月),因此必须启用适当的语言环境。
上的Python文档版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。