将字符串转换为纪元时间戳

时间:2014-11-03 13:55:17

标签: python

我有以下格式的时间戳:

date = Fri Nov 30 13:32:45 UTC 2012

有没有办法将此字符串转换为纪元时间戳?我还没有弄清楚如何转换这个字符串?这就是我一直在尝试的事情:

import datetime

d = 'Fri Nov 30 13:32:45 UTC 2012'
fmt = '%a %b %e %R %Y'
print d.strftime(fmt)

2 个答案:

答案 0 :(得分:2)

你错过了时区指令:

  

%Z 时区名称(如果不存在时区,则不包含字符)。

你使用了错误的"当月的某一天"指令:

  

%d 以十进制数表示的月份[01,31]。

你使用了错误的"时间"指令:

  

%X 区域设置的适当时间表示。

尝试:

>>> import time
>>> d = 'Fri Nov 30 13:32:45 UTC 2012'
>>> fmt = '%a %b %d %X %Z %Y'
>>> epoch = int(time.mktime(time.strptime(d, fmt)))
>>> print epoch
1354278765

答案 1 :(得分:0)

您需要strptimedatetime方法。您需要的格式为%a %b %d %H:%M:%S %Z %Y。用你的例子给出:

>>> import datetime
>>> date = "Fri Nov 30 13:32:45 UTC 2012"
>>> fmt = "%a %b %d %H:%M:%S %Z %Y"
>>> d = datetime.datetime.strptime(date, fmt)
>>> d
datetime.datetime(2012, 11, 30, 13, 32, 45)
>>> d.timestamp()
1354278765.0