私はすべての時間をUTCで保存しており、システムはUTCに設定されています(私はESTにいますが)。
私は日付を次のように保存しています:
Wed, 20 Feb 2013 03:51:39 +0000
ただし、ESTについては、本日を基にした情報を選択したいので、次のことを試みています。
現在の時刻をUTCとして取得し、ESTに変更します
datetime.utcnow().replace(tzinfo=tz.tzutc()).astimezone(tz.gettz('America/New_York')) 2013-02-19 23:17:20.560898-05:00
次に、EST日の開始時刻(2013-02-19 00:00:00.000000-05:00)と終了時刻(2013-02-19 23:59:59.99999-05:00)を取得します。
これらの値を取得したら、UTCに変換し直したいので、EST(タイムゾーン)が正しいことでクランプできる高い値と低い値があります。
これが最善の方法ではない場合、または何かが足りない場合(私には過度に複雑に見えます)、光を見るのを手伝ってください!
TIA
回答ごとの更新:
d1 = datetime.utcnow().replace(tzinfo=tz.tzutc()).astimezone(tz.gettz('America/New_York'))
print d1.strftime("%m %d %Y") ; d2 = d1.replace(day=d1.day + 1) ; print d2.strftime("%m %d %Y")
それは私に与えます
02 20 2013
02 21 2013
どちらが正しい。ここで、そこから完全なEST時間を生成してから、UTCに変換する必要があります。これはわかりません。実際、データベース操作が非常に簡単になるため(<、>、==など)、完了時にUTCエポックタイムスタンプに変換したいと思うでしょう。