2
データベースから同じ日時にアクセスする2つの別々のマシン(ローカル開発とサーバー)があります。 DateTimeオブジェクトは、両方のマシン上で(タイムゾーンを含む)と同じ値を持っている:pythonのdatetime.strftimeを強制的にUTCで出力するにはどうしたらいいですか?
ローカル
print ts
> datetime.datetime(2017, 1, 13, 7, 18, 9, 209000, tzinfo=<UTC>)
サーバー
print ts
> datetime.datetime(2017, 1, 13, 7, 18, 9, 209000, tzinfo=<UTC>)
はしかし、strftime
の出力は、両方のマシンに異なっています:
ローカル
print ts.strftime('%s')
> 1484320689
サーバー
print ts.strftime('%s')
> 1484291889
ここで何が起こっているの?クライアントとサーバーの両方で、同じタイムスタンプ文字列をUTCで出力するにはどうすればよいですか?
適切に複製できるように、dtを作成する正確な方法を含めてください。なぜなら私は通常 'dtとしてimport datetimeを使用するでしょうから、' print dt'は ''を返します。明らかに、これは問題を再現しません(データベースの読み込みが不足しています)が、正確なテストケースを自分で作成する方法はわかりません。 –
roganjosh
@roganjosh dtはデータベースから取得した変数の名前に過ぎませんでした。 import datetime.datetime as dtなどのインポートとの混乱を避けるために、名前を 'ts'に変更しました。 – Paul
'print datetime.utcnow()。replace(tzinfo = pytz.utc).strftime( '%s') ' 2つの別々のマシンで実行すると、両方のマシンで 'datetime.utcnow()'が同じであっても、値(数秒以上) – Paul