質問
私は2時間値の型 datetime.time
.したい自分。当然のことはt1-t2、この方法でやらねばならない。を動作させることができ物の種類 datetime.datetime
な datetime.time
.では、どうするのがベストなのだ。
解決
まず、このdatetime.時間は時間に依存しない一日中の異なる他のdatetime.時間価値観は今まで以上24時間までとなります。
その際の一つのアプローチに変換するという事になります両方のdatetime.時間価値観が同値(ミリ秒)には差額をいただきます。
t1, t2 = datetime.time(...), datetime.time(...)
t1_ms = (t1.hour*60*60 + t1.minute*60 + t1.second)*1000 + t1.microsecond
t2_ms = (t2.hour*60*60 + t2.minute*60 + t2.second)*1000 + t2.microsecond
delta_ms = max([t1_ms, t2_ms]) - min([t1_ms, t2_ms])
ちょっとりと色でも動きます。
他のヒント
もちょっと馬鹿げができるよう狩り任意の日の埋め込みそれぞれで、 datetime.datetime.combine
, しを差し引い:
>>> import datetime
>>> t1 = datetime.time(2,3,4)
>>> t2 = datetime.time(18,20,59)
>>> dummydate = datetime.date(2000,1,1)
>>> datetime.datetime.combine(dummydate,t2) - datetime.datetime.combine(dummydate,t1)
datetime.timedelta(0, 58675)
すならば両方へ timedeltaオブジェ 減しこれらは互いに、ケアの継続.例えば:
>>> import datetime as dt
>>> t1 = dt.time(23, 5, 5, 5)
>>> t2 = dt.time(10, 5, 5, 5)
>>> dt1 = dt.timedelta(hours=t1.hour, minutes=t1.minute, seconds=t1.second, microseconds=t1.microsecond)
>>> dt2 = dt.timedelta(hours=t2.hour, minutes=t2.minute, seconds=t2.second, microseconds=t2.microsecond)
>>> print(dt1-dt2)
13:00:00
>>> print(dt2-dt1)
-1 day, 11:00:00
>>> print(abs(dt2-dt1))
13:00:00
負timedeltaオブジェPythonを取得し負担、その他のテキストフィールドです。また事前にチェック:比較に基づtimeオブジェクトおよびtimedeltaオブジェクト
>>> dt2 < dt1
True
>>> t2 < t1
True
Pythonにはpytz(http://pytz.sourceforge.net)モジュールに使用できる演算時間オブジェクト。でのDST-オフセットします。上記のページにはこの使用pytz.
こうしたばらつきはな対応ではないと思います良い方法への対応があふれ出したdatetime.ます。そうすることではな答えが思うよりはpythonの経験をよくすることができ少します。詳細はこちらをご覧ください: http://bugs.python.org/issue3250
取得の時をミリ秒単位で、その減算.
環境です。TickCountうものが必要な場合は事はコチラから。
int start=。TickCount
...DoSomething()
int elapsedtime=。TickCount開始
Jon