关于确保日期时间是特定时区,有很多SO答案。例如,您可以确保日期时间为 UTC
from datetime import datetime
import pytz
now_utc = datetime.utcnow()
这会产生:
日期时间.日期时间(2017, 5, 11, 17, 37, 5, 602054)
您可以使用以下命令使该日期时间知道其时区(例如,用于断言两个不同的日期时间对象来自同一时区)
now_utc_aware = datetime.now(pytz.utc)
datetime.datetime(2017, 5, 11, 17, 38, 2, 757587, tzinfo=
)
但是,当我从时区感知日期时间中提取日期时,我似乎失去了时区感知。
now_utc_aware.date()
日期时间.日期(2017, 5, 11)
有趣的是,有一个SO问题似乎正好问这个问题,特别是关于日期(datetime.today()
),但答案(包括一个公认的答案)与日期时间有关。我看到的用于为日期时间添加时区感知的代码似乎都在我的datetime.date
对象上抛出错误。
是否可以向日期对象添加时区感知?
来自 Python 文档:
上课日期时间。日期
一个理想化的天真约会,...属性:年、月、日。
那里没有时间或时区。 这只是一个约会。
虽然地球上并非任何地方都同时在同一日期(由于时区),但这并不意味着日期本身具有时区意识。
作为现实世界的类比,将日期视为日历上的正方形。 人们不能在不引入时间的情况下开始谈论时区,时间是由时钟而不是日历来衡量的。