重複の可能性:
Python の日時から Unix のタイムスタンプへ
a を、たとえば 2012 年 1 月以降の分数を表すに変換しdatetime
て、これを変更したり、データベースに書き込んだり、比較したりできるようにする方法はありますか? 編集:これを実行しているサーバーはPython 2.6.6を使用していますint
int
重複の可能性:
Python の日時から Unix のタイムスタンプへ
a を、たとえば 2012 年 1 月以降の分数を表すに変換しdatetime
て、これを変更したり、データベースに書き込んだり、比較したりできるようにする方法はありますか? 編集:これを実行しているサーバーはPython 2.6.6を使用していますint
int
datetime.datetime
2 つのオブジェクトを減算すると、メソッドを持つtimedelta
objectが得られます(Python 2.7 で追加)。これを 60 で割り、キャストして基準日からの分数を取得します。.total_seconds()
int()
import datetime
january1st = datetime.datetime(2012, 01, 01)
timesince = datetime.datetime.now() - january1st
minutessince = int(timesince.total_seconds() / 60)
またはpythonシェルで:
>>> import datetime
>>> january1st = datetime.datetime(2012, 01, 01)
>>> timesince = datetime.datetime.now() - january1st
>>> minutessince = int(timesince.total_seconds() / 60)
>>> minutessince
346208
Python 2.6 以前では、分を計算するために.days
および属性を使用する必要があります。.seconds
minutessince = timesince.days * 1440 + timesince.seconds // 60
これにより、整数も得られます。
2 つの日付間の差分の分が必要な場合は、datetime.timedelta
2 つの日付を減算してオブジェクトを作成し (こちらを参照)、次の質問に示すように分を取得できます。
日時を減算することで、timedelta を取得できます。このタイムデルタは、それ自体を分割して、必要なものを提供できます。
(datetime.datetime.now() - datetime.datetime(2012, 1, 1)) // datetime.timedelta(minutes=1)
(このコードは python3 でのみ有効です。そのため、誰もが python3 に切り替える必要があります ;-) )
>>> import datetime
>>> now = datetime.datetime.now()
>>> then = datetime.datetime(year=2012, month=1, day=1)
>>> delta=now-then
これは、時間間隔を表す timedelta オブジェクトです。
>>> print delta
240 days, 11:05:25.507000
その間隔の分数を数えるには、次を使用します。
>>> print delta.total_seconds() / 60
346265.42511666665