0

我不确定我的措辞是否正确,但 python 和时间总是让我感到困惑。这就是我正在尝试的。给定一个绝对在过去(可以是几秒钟前或几年前)的 unix 时间戳(INT),我想生成一个 babel format_timedelta

我的问题是

  1. Babel 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: 'module' object has no attribute 'format_timedelta'

4

2 回答 2

2
import datetime

td = datetime.timedelta(seconds=time.time()-a_unix_timestamp)
于 2012-03-28T22:39:53.533 回答
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模块文档

于 2012-03-28T22:42:29.653 回答