首页 > 解决方案 > 格式为“%”的错误指令 datetime.strptime

问题描述

当我尝试将 str 的格式更改为日期时间时,我面临 ValueError,

这可能是一个简单的问题,但在 google 或 stackoverflow 上也找不到解决方案,我发现一些关于“z”的解决方案是格式错误的指令,但不是“%”一个

current_session.date = datetime.strptime('2019-06-16 00:02', '%Y-%B-%d% %H:%M')



Traceback (most recent call last):
  File "/home/rambod/PycharmProjects/mailWatcher/smtpINWatcher.py", line 92, in <module>
    current_session.date = datetime.strptime('2019-06-16 00:02', '%Y-%B-%d% %H:%M')
  File "/usr/lib/python3.7/_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "/usr/lib/python3.7/_strptime.py", line 351, in _strptime
    (bad_directive, format)) from None
ValueError: '%' is a bad directive in format '%Y-%B-%d% %H:%M'

标签: pythondatetimestrptime

解决方案


%B是月份作为语言环境的全名。喜欢

一月、二月、……、十二月(en_US);一月,二月,……,十二月(de_DE)

你的例子

In [25]: date = datetime.strptime('2019-06-16 00:02', '%Y-%m-%d %H:%M')                                                                                                                       

In [26]: date                                                                                                                                                                                 
Out[26]: datetime.datetime(2019, 6, 16, 0, 2)

https://docs.python.org/3/library/datetime.html


推荐阅读