将http请求时间转换为Python中的unix时间戳
问题描述:
民间, 如何将下列字符串转换为unix时期时间戳?将http请求时间转换为Python中的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时间戳回到上面的格式?
谢谢!
答
>>> import time
>>> int(time.time())
1380817337
>>>
答
我今天早些时候回答了一个非常类似的问题here。让我知道这是否适合你。
基本上你需要看看time.strptime()
和time.mktime()
函数。
在你的情况,格式说明是:
time.strptime("Thu, 03 Oct 2013 14:55:44 GMT", "%a, %d %b %Y %X %Z")
答
转换为时间戳:
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 '
答
>>> 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'
完全不是那么回事,我....打印time.strptime( “星期四,2013年10月3日16时24分59秒GMT”)返回:ValueError异常:时间数据“星期四,2013年10月3日16:24:59 GMT'不符合格式'%a%b%d%H:%M:%S%Y' – Cmag
@Clustermagnet更新了您需要使用的确切函数调用的答案。你错过了格式说明符。 – Nikhil