如何让 Datetime 对象感知(不是 Naive)
在 Python 中,datetime 对象可以是 naive 的,也可以是感知的。幼稚对象没有与之关联的时区,而感知对象则有。这可能会在比较日期时间对象时导致问题,因为原始对象无法与感知对象进行比较。
有几种方法可以使原始日期时间对象感知。一种方法是使用 localize 方法。 localize 方法接受 pytz 时区对象作为参数,并返回一个知道指定时区的新日期时间对象。
例如:
import datetime import pytz unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0) aware = pytz.utc.localize(unaware)
这将创建一个新的日期时间对象知道 UTC 时区。
另一种让简单的日期时间对象知道的方法是使用替换方法。 Replace 方法采用许多关键字参数,其中一个用于 tzinfo 属性。 tzinfo 属性可以设置为 pytz 时区对象,以使日期时间对象感知。
例如:
import datetime import pytz unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0) aware = unaware.replace(tzinfo=pytz.UTC)
这还将创建一个感知 UTC 的新日期时间对象timezone.
一旦一个日期时间对象被感知,它就可以与其他感知的日期时间对象进行比较。例如:
import datetime import pytz aware_1 = pytz.utc.localize(datetime.datetime(2011, 8, 15, 8, 15, 12, 0)) aware_2 = pytz.utc.localize(datetime.datetime(2011, 8, 15, 8, 15, 12, 0)) if aware_1 == aware_2: print("The two datetime objects are equal.")
这将打印“两个日期时间对象相等。”
以上是如何在 Python 中将 Naive Datetime 对象转换为 Aware Datetime 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!