7

datetime.datetime.now()UTC-8のネイティブタイムゾーンでの出力の出力。それをUTCのtzinfoで適切なタイムスタンプに変換したいと思います。

from datetime import datetime, tzinfo
x = datetime.now()
x = x.replace(tzinfo=UTC)

^ NameErrorを出力します:名前'UTC'は定義されていません

x.replace(tzinfo=<UTC>)SyntaxErrorを出力します:無効な構文

x.replace(tzinfo='UTC')TypeErrorを出力します。tzinfo引数はNoneまたはtzinfoサブクラスである必要があり、タイプ'str'ではありません。

私の例を達成するために使用する正しい構文は何ですか?

4

2 に答える 2

10

などの追加のライブラリを使用する必要がありますpytz。Python のdatetimeモジュールにはtzinfo、UTC を含むクラスは含まれておらず、もちろんローカル タイムゾーンも含まれていません。

編集: Python 3.2 以降datetimeモジュールにはメンバーtimezoneを持つオブジェクトが含まれています。utc現在の UTC 時刻を取得する標準的な方法は次のとおりです。

from datetime import datetime, timezone
x = datetime.now(timezone.utc)

pytz他のタイムゾーン用など、別のライブラリが必要になります。

于 2012-07-05T23:02:25.653 に答える
3

探しているのが UTC の現在時刻だけである場合、datetime にはそのためのビルトインがあります。

x = datetime.utcnow()

残念ながら tzinfo は含まれていませんが、UTC 時刻が表示されます。

または、tzinfo が必要な場合は、次のようにします。

from datetime import datetime
import pytz
x = datetime.now(tz=pytz.timezone('UTC'))

タイムゾーンのリストにも興味があるかもしれません: Python - Pytz - タイムゾーンのリスト?

于 2014-05-29T08:17:38.377 に答える