0

私がそれを正しく表現したかどうかはわかりませんが、python と時間はいつも私を混乱させます。これが私が試みていることです。間違いなく過去 (数秒前または数年前) の UNIX タイムスタンプ (INT) を指定すると、babel format_timedelta を生成したい

私の問題は

  1. Babel format_timedelta は最初の引数として timedelta を取ります
  2. だから私は time.time() (今) と私が持っている UNIX タイムスタンプを使用して timedelta を生成する必要があると思います。

パート2がわかりません。これを行うためのより簡単で正しい方法があるに違いないと思います。これを行うための最良の方法を共有してください。また、Webページで使用する必要があるため、計算を高速にする必要があります.

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' がありません

4

2 に答える 2

2
import datetime

td = datetime.timedelta(seconds=time.time()-a_unix_timestamp)
于 2012-03-28T22:39:53.533 に答える
1

datetime2 つのインスタンスの違いは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 に答える