如何使python datetime.strptime考虑到时区传递?

时间:2017-02-16 15:49:02

标签: python python-2.7 datetime strptime

尝试将字符串转换为datetime并将其保存到db。字符串指定时区,但strptime不接受%z选项。

datetime.strptime("Tue Feb 14 2017 15:30:01 GMT-0500", "%a %b %d %Y %H:%M:%S GMT%z")
  

ValueError:'z'是格式为'%a%b%d%Y%H:%M:%S GMT%z'

的错误指令

1 个答案:

答案 0 :(得分:1)

自Python 3.2起支持

%z

>>> from datetime import datetime
>>> datetime.strptime("Tue Feb 14 2017 15:30:01 GMT-0500", "%a %b %d %Y %H:%M:%S GMT%z")
datetime.datetime(2017, 2, 14, 15, 30, 1, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400)))

或使用dateutil.parser

>>> from dateutil import parser
>>> parser.parse('Tue Feb 14 2017 15:30:01 GMT-0500')
datetime.datetime(2017, 2, 14, 15, 30, 1, tzinfo=tzoffset(None, 18000))