2017-05-11 10 views
0

私は、金曜の朝から日曜日の朝まで毎週、Pythonでトリガーしたいイベントがあります。PythonがdatetimeをUTCタイムゾーンに設定しました

私のローカル環境で動作するコードを書いていますが、実稼働環境にデプロイすると恐れられます。日付時刻はローカライズされ、トリガーは正しくありません。 理想的には、すべてをUTCと同期することをお勧めします。これは私の試みです。正しいかどうか、誰かがどのようにクリーナーを作成するかについてのフィードバックがあるかどうかを確認したいと思います。

(コードは、私の作品が、私はとにかく正しいタイムゾーンにいるよ:))

from datetime import datetime 
def eventTrigger(): 
    if((datetime.weekday(datetime.today()) == 4) and (datetime.now().utcnow.hour) > 9): 
     return True 
    elif ((datetime.weekday(datetime.today()) == 6) and (datetime.now().utcnow.hour) < 10): 
     return True 
    elif (datetime.weekday(datetime.today()) == 5): 
     return True 
    else: 
     return False 

私は、日時のマニュアルを読んでみましたが、それはかなり混乱します。

+0

私は受け入れます:

まず、ライブラリーpytzはあなたとあなたのeventTrigger()の上部に、確実にUTCであることを、todaynow変数を定義することができ、その後

from datetime import datetime import pytz 

を助けることができます答え、それについて申し訳ありません:) – AllynH

答えて

3

時間とタイムゾーンが混乱するので、ここでは慎重に検討してください。

now_utc = datetime.now(pytz.utc) 
today_utc = now_utc.date() 
+0

素晴らしい、ありがとう! 説明と同様に、 datetime.now(pytz.utc) と: datetime.now()。utcnow.hour – AllynH

+0

の両方を実行して出力を比較しましたか? –

+1

私は今、構文エラーがあります:datetime.now()。utcnow.hourは、イベントのテスト時にのみ表示されます... 私は質問をする前に確認しています。大いに感謝しています:) – AllynH

関連する問題