将可读的日期和时间字符串转换为 Python 中的日期时间对象
Converting a readable date & time string to a datetime object in Python
我正在尝试使用 strptime 将 "Mar 15, 2016 10:47:15" 等日期和时间字符串转换为 Python 日期时间对象。我相信我的格式正确,但是当我 运行 以下内容时,我仍然会收到 ValueError 异常:
>>> s = "Mar 15, 2016 10:47:15"
>>> datetime.datetime.strptime(s,"%b %m, %Y %H:%M:%S")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data 'Mar 15, 2016 10:47:15' does not match format '%b %m, %Y %H:%M:%S'
关于我的格式字符串可能有什么问题有什么想法吗?
格式字符串中的第二项 (%m
) 指的是月份。将其更改为 %d
将使您的代码正常工作。
datetime.datetime.strptime(s,"%b %d, %Y %H:%M:%S")
以下是strptime
documentation的相关部分:
%d Day of the month as a zero-padded decimal number. 01, 02, ..., 31
%m Month as a zero-padded decimal number. 01, 02, ..., 12
月份名称是特定于区域设置的。如果您想使用为应用程序英语语言环境设置的英文月份名称,例如 en_US
.
$ env LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 python
>>> import datetime
>>> s = "Mar 15, 2016 10:47:15"
>>> datetime.datetime.strptime(s,"%b %d, %Y %H:%M:%S")
datetime.datetime(2016, 3, 15, 10, 47, 15)
P.S。 %m
替换为%d
,意思是天。
我正在尝试使用 strptime 将 "Mar 15, 2016 10:47:15" 等日期和时间字符串转换为 Python 日期时间对象。我相信我的格式正确,但是当我 运行 以下内容时,我仍然会收到 ValueError 异常:
>>> s = "Mar 15, 2016 10:47:15"
>>> datetime.datetime.strptime(s,"%b %m, %Y %H:%M:%S")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data 'Mar 15, 2016 10:47:15' does not match format '%b %m, %Y %H:%M:%S'
关于我的格式字符串可能有什么问题有什么想法吗?
格式字符串中的第二项 (%m
) 指的是月份。将其更改为 %d
将使您的代码正常工作。
datetime.datetime.strptime(s,"%b %d, %Y %H:%M:%S")
以下是strptime
documentation的相关部分:
%d Day of the month as a zero-padded decimal number. 01, 02, ..., 31
%m Month as a zero-padded decimal number. 01, 02, ..., 12
月份名称是特定于区域设置的。如果您想使用为应用程序英语语言环境设置的英文月份名称,例如 en_US
.
$ env LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 python
>>> import datetime
>>> s = "Mar 15, 2016 10:47:15"
>>> datetime.datetime.strptime(s,"%b %d, %Y %H:%M:%S")
datetime.datetime(2016, 3, 15, 10, 47, 15)
P.S。 %m
替换为%d
,意思是天。