我有以下格式的时间戳:
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)
答案 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)
您需要strptime
类datetime
方法。您需要的格式为%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