关于Python:Python – 给定一个时区感知日期时间对象如何获得一个时区初始的UTC日期时间对象?

Python - given a timezone-aware datetime object how do I get a timezone-naive UTC datetime object?

我很困惑,因为在Python中,datetime.datetime.utcnow()返回一个时区初始的日期时间对象。 我希望它能够以时区识别UTC作为其时区,但无论如何。 为了将其转换为时区感知日期时间对象,我将执行以下操作:

1
2
3
4
5
6
import pytz
from datetime import datetime

us_pacific = pytz.timezone('US/Pacific')
utc_now = datetime.utcnow()
pacific_now = us_pacific.fromutc(utc_now)

我现在想知道的是如何走向相反的方向。 给定一个时区感知日期时间对象,我想回到相应的timezone-naive UTC datetime对象。


1
2
3
4
5
# First convert back to UTC
utc_time = pacific_now.astimezone(pytz.utc)

# Remove the timezone attribute to make it timezone-naive
utc_time = utc_time.replace(tzinfo=None)