1

私はPythonTZ対応の日時を持っていますend_date。たとえば2013-03-0106:00:00 + 00:00です。アメリカ/シカゴのタイムゾーンのこの日時の月を取得したいと思います。もしそうなら、私は3を取得します。メソッドに-または何か-end_date.monthのようなものを呼び出して、正しい値2を取得したいと思います。end_date.timezone('America/Chicago').month

私はこの日時/pytzのものを理解したと思いました...

4

1 に答える 1

6

を使用できます.astimezone()(ドキュメントによると、タイムゾーンの遷移や夏時間のようなものを処理するには.normalize()、結果が必要です)。

from pytz import timezone
end_date = ...tz-aware datetime...
us_tz = timezone('America/Chicago')

localized_end_date = us_tz.normalize(end_date.astimezone(us_tz))

.astimezoneナイーブな日時では使用できないことに注意してください。TZ対応の日時である必要があります。別の方法は、インスタンスで.localize()メソッドを使用することです。tzinfo

end_date = ...naive datetime...
localized_end_date = timezone('America/Chicago').localize(end_date, is_dst=None)
于 2013-03-13T23:21:51.257 に答える