在Python中将http请求时间转换为unix时间戳

时间:2013-10-03 16:25:46

标签: python datetime

民间,   如何将以下字符串转换为unix纪元时间戳?

Thu, 03 Oct 2013 14:55:44 GMT

我可以通过以下方式提取本地http时间戳:

In [53]: now = datetime.now()

In [54]: stamp = mktime(now.timetuple())

In [55]: print format_date_time(stamp)
Thu, 03 Oct 2013 16:24:59 GMT

以及如何将生成的unix时间戳转换回上述格式?

谢谢!

4 个答案:

答案 0 :(得分:3)

转换为时间戳:

from datetime import datetime 

ts = datetime.strptime("Thu, 03 Oct 2013 14:55:44 GMT", "%a, %d %b %Y %X %Z").strftime("%s")
print ts  # '1380804944'

转换回原始格式:

from datetime import datetime

dtime = datetime.fromtimestamp(int('1380804944')).strftime("%a, %d %b %Y %X %Z GMT")
print dtime      # 'Thu, 03 Oct 2013 14:55:44 '

答案 1 :(得分:2)

>>> import time
>>> int(time.time())
1380817337
>>> 

答案 2 :(得分:2)

>>> import email
>>> time.mktime(email.utils.parsedate("Thu, 03 Oct 2013 14:55:44 GMT"))
1380804944.0

然后回来:

>>> f = 1380804944.0
>>> email.utils.formatdate(f, False, True)
'Thu, 03 Oct 2013 12:55:44 GMT'

答案 3 :(得分:1)

我今天早些时候回答了一个非常类似的问题here。如果这对您有用,请告诉我。

基本上,您需要查看time.strptime()time.mktime()函数。

在您的情况下,格式说明符为:

time.strptime("Thu, 03 Oct 2013 14:55:44 GMT", "%a, %d %b %Y %X %Z")