我有一个类似于Fri Aug 03 15:16:37 +0000 2012
的东西,我想把它转换成03-08-2012
。
我还有一些Unix时间戳,例如1344006622
,这里我只需要执行以下操作:
datetime.datetime.fromtimestamp(1344006622).strftime('%d-%m-%Y')
但这仅适用于Unix时间戳。我如何转换第一个时间格式?
我有一个类似于Fri Aug 03 15:16:37 +0000 2012
的东西,我想把它转换成03-08-2012
。
我还有一些Unix时间戳,例如1344006622
,这里我只需要执行以下操作:
datetime.datetime.fromtimestamp(1344006622).strftime('%d-%m-%Y')
但这仅适用于Unix时间戳。我如何转换第一个时间格式?
dateutil
据我所知,Python 2只提供了一个用于时区名称的%Z
(大写Z),但是您拥有一个偏移量(+0000
)。不过有一个名为dateutil的库可以帮助您:
>>> import dateutil
>>> import dateutil.parser
>>> dateutil.parser.parse('Fri Aug 03 15:16:37 +0000 2012')
datetime.datetime(2012, 8, 3, 15, 16, 37, tzinfo=tzutc())
>>> dateutil.__version__
'2.4.2'
pip install python-dateutil
进行安装,如果你想指定版本,可以使用 pip install python-dateutil==2.4.2
。
%z
来解析时区信息 +0000
。>>> from datetime import datetime
>>> datetime.strptime('Fri Aug 03 15:16:37 +0000 2012', '%a %b %d %H:%M:%S %z %Y')
datetime.datetime(2012, 8, 3, 15, 16, 37, tzinfo=datetime.timezone.utc)
如需参数的解释,请参考此表格
。