datetime.datetime.utcnow() にタイムゾーン情報が含まれていないのはなぜですか? 質問する

datetime.datetime.utcnow() にタイムゾーン情報が含まれていないのはなぜですか? 質問する
datetime.datetime.utcnow()

datetime明示的に UTC であるにもかかわらず、タイムゾーン情報がないのはなぜですかdatetime?

これには が含まれると予想されますtzinfo

ベストアンサー1

Python 3.2以降では、datetimeモジュールにはdatetime.timezoneのドキュメントdatetime.utcnow()言う:

を呼び出すことによって、認識された現在の UTC 日時を取得できます。datetime.now(timezone.utc)

したがって、 UTC であることを示すためにdatetime.utcnow()設定するのではなくtzinfo、設定するdatetime.now(datetime.timezone.utc)UTC 時刻を返します。 tzinfo

つまり、次のことができます:

>>> import datetime
>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2014, 7, 10, 2, 43, 55, 230107, tzinfo=datetime.timezone.utc)

Python 3.11以降では、datetime.UTCこれは と同等ですdatetime.timezone.utc。したがって も実行できますdatetime.datetime.now(datetime.UTC)

おすすめ記事