0


0

アプリエンジンでは、現在の時刻が特定の間隔内にある場合に関数を呼び出したいと思います。 これが私が今やっていることです。

ist_time = datetime.utcnow()timedelta(時= 5、分= 30)ist_midnight = ist_time.replace(時= 0、分= 0、秒= 0、マイクロ秒= 0)market_open = ist_midnight時間デルタ(時= 9、分=) 55)ist_time> = market_openかつist_time <= market_closeの場合、market_close = ist_midnightのtimedelta(時= 16、分= 01):check_for_updates()

これを行うためのより良い方法です。

2 Answer


1


これはもっとコンパクトですが、それほど明白ではありません。

if '09:55' <= time.strftime(
   '%H:%M', time.gmtime((time.time() + 60 * (5 * 60 + 30)))) <= '16:01':
  check_for_updates()

計算を正しく正しく実行することがどれほど重要かに応じて、夏時間(Appにバンドルされている_pytz_を使用してAppEngineにアップロードすることができます)を使用して夏時間を考慮することをお勧めします。例えば 前者は秒/サブ秒の精度に依存しないため、 `+ ⇐ '16:01 '`の代わりに ` <'16:02' +`を使用します。


0


datetimeの "time"型が欲しいかもしれませんが、これはdateを気にしません。

import datetime ist_time = datetime.utcnow()datetime.timedelta(hours = 5、minutes = 30)#これを時間オブジェクトにします(日情報なし)。 ist_time = ist_time.time()datetime.time(9、55)<= ist_time <= datetime.time(16、1)の場合:...

tzinfoを使用してタイムゾーンの調整を処理するためのより洗練された方法があると確信していますが、私はタイムゾーンを扱ったことがないことを自白する必要があります。