2012-03-28 4 views
0

정확하게 말했는지는 확실치 않지만 파이썬과 시간은 항상 혼란 스럽습니다. 이것이 내가 시도하는 것입니다. 을 감안할 때 내가유닉스 타임 스탬프를 사용하면 바벨의 format_timedelta에 대한 timedelta를 생성합니다

내 문제 format_timedelta 바벨을 생성 할 (전 초 전 또는 몇 년이 될 수 있습니다) 과거에 확실히 유닉스 타임 스탬프 (INT)는

  1. 바벨 format_timedelta는 첫 번째 인수로 timedelta 걸립니다
  2. 그래서 time.time() (지금)과 유닉스 타임 스탬프를 사용하여 timedelta를 생성해야한다고 생각합니다.

나는 2 부를 알아낼 수 없다. 나는 이것을하기 더 쉽고 정확한 방법이 있어야한다고 생각한다. 이 작업을 수행하는 최선의 방법을 공유하십시오. 웹 페이지에서 사용해야하므로 계산 속도가 빨라야합니다. '모듈'객체 속성에는 'format_timedelta'datetime 두 인스턴스 간의

답변

1
import datetime 

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

감사합니다. 나는 유닉스 시간의 초를 넣을 수있는 timedelta에 대해 이것을 몰랐고 timedelta 객체로 만들었습니다. – Vangel

+0

나는 당신의 방법으로 시도했다. 하지만 난 오류가 있다고 생각합니다 :/(편집 및 추가 된 코드) – Vangel

+0

오류가 당신이하고있는 어딘가를 다루고 있기 때문에 당신이 얻고있는 오류가 여러분이 보여준 코드와 아무런 관련이 없다고 생각합니다. .format_timedelta'가 표시되는 코드의 아무 곳에 나 나타나지 않습니다. – Amber

1

차이가없는 timedelta 인스턴스이다

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

()는이 AttributeError date.format_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

+0

@Vangel : 위 코드에서? – vartec

+0

예 대답을 모두 시도하고 같은 문제가 발생합니다. 내가 플라스크와 플라스크 내선 바벨을 사용하고 있음을 지적해야합니다. 그것은 단지 같은 문제에 대해 불평합니다. – Vangel

관련 문제