Pytz在Aware Datetime上进行本地化



我正在尝试使用pytz将可识别日期时间(UTC(转换为本地时间。

我使用的是这段代码,这导致的时间缩短了几分钟

new_timezone = pytz.timezone(local_timezone)
new_datetime = entry[1].replace(tzinfo=timezone.utc).astimezone(tz=new_timezone)

我试着这样做,但得到了一个错误,这不是一个天真的日期时间:

local_timezone_pytz.localize(entry[1])

使用astimezone,例如:

import datetime
import pytz
dt = datetime.datetime.now(datetime.timezone.utc)
# datetime.datetime(2020, 10, 22, 5, 48, 5, 806183, tzinfo=datetime.timezone.utc)
dt_est = dt.astimezone(pytz.timezone('US/Eastern'))
# datetime.datetime(2020, 10, 22, 1, 48, 5, 806183, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)

请注意,这并非特定于pytz;您还可以提供从dateutil.tz.gettzzoneinfo.ZoneInfoastimezone的时区对象。

最新更新