2012-03-28 37 views
0

我不知道我是否正確表達了這一點,但python和時間總是讓我困惑。 這就是我想要的。 給定UNIX時間戳(INT),這無疑是過去(可以秒前或幾年前)我想生成一個通天format_timedelta使用unix timestamp爲babel的format_timedelta生成timedelta

我的問題是

  1. 通天format_timedelta需要timedelta作爲第一個參數
  2. 所以我想我需要使用time.time()(現在)和我有的unix時間戳生成timedelta。

我不知道第2部分,我相信必須有一個更簡單/正確的方法來做到這一點。請分享最好的方式來做到這一點,我也需要它快速計算,因爲我必須在網頁中使用它。

def format_starttime(value, granularity="day"): 
delta = datetime.timedelta(seconds=time.time() - value) 
return format_timedelta(delta, granularity) 

給出錯誤在date.format_timedelta() AttributeError的: '模塊' 對象沒有屬性 'format_timedelta' 兩個datetime實例之間

回答

1
import datetime 

td = datetime.timedelta(seconds=time.time()-a_unix_timestamp) 
+0

謝謝我不知道這個關於timedelta,我可以簡單地把秒的時間,使它timedelta對象。 – Vangel 2012-03-29 06:37:32

+0

我嘗試了你的方法。但我認爲我有錯誤:/(編輯並添加了代碼) – Vangel 2012-03-29 06:58:13

+0

我認爲你得到的錯誤與你所顯示的代碼無關,因爲錯誤是在處理你正在做的' .format_timedelta'不會出現在您顯示的代碼中的任何位置。 – Amber 2012-03-29 17:28:41

1

差爲timedelta實例。

from datetime import datetime 
from babel.dates import format_timedelta 
delta = datetime.now() - datetime.fromtimestamp(your_timestamp) 
print format_timedelta(delta, locale='en_US') 

有關詳細信息和更多示例,請參見datetime module documentation

+0

我仍然得到錯誤,請參閱我的代碼我添加它 – Vangel 2012-03-29 06:57:26

+0

@Vangel:在上面的代碼? – vartec 2012-03-29 13:29:42

+0

是的,我已經嘗試了兩個答案,並得到同樣的問題。我必須指出,我正在使用燒瓶和燒瓶ext babel。它只是抱怨同樣的問題。 – Vangel 2012-03-29 14:43:52

相關問題