Pytz 在感知日期时间上进行本地化

Pytz Localise on 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.

的时区对象