将长字符串解析为日期时间
Parsing long string as datetime
使用时
import datetime
s = 'Sat Apr 23 2016 00:00:00 GMT+0100'
print datetime.datetime.strptime(s, "%a %m %d %y %H:%M:%S GMT+0100")
我得到:
ValueError: time data 'Sat Apr 23 2016 00:00:00 GMT+0100' does not match format '%a %m %d %y %H:%M:%S GMT+0100'
如何解析这样的字符串?
注意:使用 dateutil.parser.parse
无效:它产生了一些奇怪的 datetime
对象,我可以 not 用另一个对象减去日期时间,即 d1 - d2
无效。
改为使用此 format string:"%a %b %d %Y %H:%M:%S GMT+0100"
。
我做了两处修改:
- 将
%m
(月份作为零填充的十进制数)替换为 %b
(月份作为区域设置的缩写名称)
- 将
%y
(没有世纪的年份作为零填充的十进制数)替换为 %Y
(带有世纪的年份作为十进制数)
根据this reference,
格式应为 "%a %b %d %Y %H:%M:%S GMT+0100"
使用时
import datetime
s = 'Sat Apr 23 2016 00:00:00 GMT+0100'
print datetime.datetime.strptime(s, "%a %m %d %y %H:%M:%S GMT+0100")
我得到:
ValueError: time data 'Sat Apr 23 2016 00:00:00 GMT+0100' does not match format '%a %m %d %y %H:%M:%S GMT+0100'
如何解析这样的字符串?
注意:使用 dateutil.parser.parse
无效:它产生了一些奇怪的 datetime
对象,我可以 not 用另一个对象减去日期时间,即 d1 - d2
无效。
改为使用此 format string:"%a %b %d %Y %H:%M:%S GMT+0100"
。
我做了两处修改:
- 将
%m
(月份作为零填充的十进制数)替换为%b
(月份作为区域设置的缩写名称) - 将
%y
(没有世纪的年份作为零填充的十进制数)替换为%Y
(带有世纪的年份作为十进制数)
根据this reference,
格式应为 "%a %b %d %Y %H:%M:%S GMT+0100"