8

重複の可能性:
Python の日時から Unix のタイムスタンプへ

a を、たとえば 2012 年 1 月以降の分数を表すに変換しdatetimeて、これを変更したり、データベースに書き込んだり、比較したりできるようにする方法はありますか? 編集:これを実行しているサーバーはPython 2.6.6を使用していますintint

4

4 に答える 4

26

datetime.datetime2 つのオブジェクトを減算すると、メソッドを持つtimedeltaobjectが得られます(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

これにより、整数も得られます。

于 2012-08-28T09:07:49.770 に答える
2

2 つの日付間の差分の分が必要な場合は、datetime.timedelta2 つの日付を減算してオブジェクトを作成し (こちらを参照)、次の質問に示すように分を取得できます。

timedelta を日、時間、分に変換する

于 2012-08-28T09:04:14.823 に答える
2

日時を減算することで、timedelta を取得できます。このタイムデルタは、それ自体を分割して、必要なものを提供できます。

(datetime.datetime.now() - datetime.datetime(2012, 1, 1)) // datetime.timedelta(minutes=1)

(このコードは python3 でのみ有効です。そのため、誰もが python3 に切り替える必要があります ;-) )

于 2012-08-28T09:04:42.280 に答える
1
>>> 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
于 2012-08-28T09:08:09.253 に答える