您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Python中将时区添加到朴素的日期时间实例中

如何在Python中将时区添加到朴素的日期时间实例中

使用tz.localize(d)本地化的实例。从文档中

第一种是使用pytz库提供的localize()方法。这用于本地化原始日期时间(没有时区信息的日期时间):

>>> loc_dt = eastern.localize(datetime(2002, 10, 27, 6, 0, 0))
>>> print(loc_dt.strftime(fmt))
2002-10-27 06:00:00 EST-0500

如果您 使用tz.localize(),而是使用datetime.replace(),则可能会使用 历史 偏移量;tz.localize()将选择在给定日期有效的正确偏移量。例如,美国东部时区DST的开始和结束日期随时间而变化。

当您尝试定位一个不明确的日期时间值时,因为它跨越了从夏季到冬季的过渡时期,反之亦然,因此将查询时区,以查看生成的日期时间对象是否应.dst()返回True或False。您可以使用is_dst关键字参数覆盖时区的认值.localize()

dt = tz.localize(naive, is_dst=True)

甚至通过设置完全关闭选择is_dst=None在这种情况下,或在极少数情况下有 没有认的时区设置,不明确的日期时间值会导致AmbiguousTimeError被引发的异常。is_dst仅针对不明确的日期时间值查询该标志,否则将忽略该标志。

要返回另一种方式,请将时区感知对象转换为朴素对象,请使用.replace(tzinfo=None)

naivedt = awaredt.replace(tzinfo=None)
python 2022/1/1 18:46:41 有319人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶