为什么 datetime.time 没有时区?
Why doesn't datetime.time have astimezone?
我正在将 datetime.time
对象的时区转换为不同的时区。看起来最简单的方法是从 datetime.time
对象创建一个 datetime.datetime
,然后进行转换。
像这样:
dt = datetime.datetime.combine(datetime.date.today(), self.data)
utc_dt = dt.astimezone(utc)
self.data = utc_dt.time()
为什么 datetime.time 没有像 datetime.datetime 那样的时区?这似乎会让事情变得容易得多。是因为没有日期的时区偏移量可能不明确吗?
时区需要日期,光有时间是不够的。
那是因为:
- 您需要能够确定夏令时是否适用。
- 您需要知道要应用哪些偏移量。时区不是静态的,它们随着时间的推移而变化,调整 DST 开始和结束日期,以及与 UTC 的偏移量。
我正在将 datetime.time
对象的时区转换为不同的时区。看起来最简单的方法是从 datetime.time
对象创建一个 datetime.datetime
,然后进行转换。
像这样:
dt = datetime.datetime.combine(datetime.date.today(), self.data)
utc_dt = dt.astimezone(utc)
self.data = utc_dt.time()
为什么 datetime.time 没有像 datetime.datetime 那样的时区?这似乎会让事情变得容易得多。是因为没有日期的时区偏移量可能不明确吗?
时区需要日期,光有时间是不够的。
那是因为:
- 您需要能够确定夏令时是否适用。
- 您需要知道要应用哪些偏移量。时区不是静态的,它们随着时间的推移而变化,调整 DST 开始和结束日期,以及与 UTC 的偏移量。