使用unix timestamp为babel的format_timedelta生成timedelta

时间:2012-03-28 22:35:29

标签: python unix-timestamp babel

我不确定我说得对,但是python和时间总是让我感到困惑。 这就是我想要的。 给定一个肯定在过去的unix时间戳(INT)(可能是几秒钟或几年前)我想生成一个babel format_timedelta

我的问题是

  1. Babel format_timedelta将timedelta作为第一个参数
  2. 所以我想我需要使用time.time()(现在)和我拥有的unix时间戳来生成timedelta。
  3. 我无法弄清楚第2部分,我相信必须有一个更容易/更正确的方法来做到这一点。请分享最好的方法来做到这一点,我也需要快速计算,因为我必须在网页中使用它。

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

    在date.format_timedelta()中给出错误   AttributeError:'module'对象没有属性'format_timedelta'

2 个答案:

答案 0 :(得分:1)

import datetime

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

答案 1 :(得分:1)

两个datetime实例之间的差异是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

相关问题