将长字符串解析为日期时间

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"