2013-10-03 115 views
0

民間, 如何將下列字符串轉換爲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時間戳回到上面的格式?

謝謝!

回答

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

我今天早些時候回答了一個非常類似的問題here。讓我知道這是否適合你。

基本上你需要看看time.strptime()time.mktime()函數。

在你的情況,格式說明是:

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

+0

完全不是那麼回事,我....打印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

+0

@Clustermagnet更新了您需要使用的確切函數調用的答案。你錯過了格式說明符。 – Nikhil

2

轉換爲時間戳:

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
>>> 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'