如何使用 python 将当地时间 (PDT) 转换为 PST

Kev*_*vin 3 python time timezone datetime

如果我想转换时区,通常我会执行以下操作

# local interpreted as pst to utc

utc = pytz.utc
pst = pytz.timezone('America/Los_Angeles')


start_time_str = time.strftime('%Y-%m-%d %H:%M:%S', \
  time.localtime(start_time))
start_time_datetime = \
  datetime.datetime.strptime(start_time_str, "%Y-%m-%d %H:%M:%S")

start_time_datetime = \
  start_time_datetime.replace(tzinfo=pst).astimezone(utc)
Run Code Online (Sandbox Code Playgroud)

现在我想做类似的事情,比如我想将本地时间转换为 pst

localtime = datetime.datetime.fromtimestamp(time.mktime(
            time.localtime()))
Run Code Online (Sandbox Code Playgroud)

我不太确定你将如何实现这一目标

任何帮助,将不胜感激

Mat*_*int 6

两件事情:

  1. "America/Los_Angeles"标识符代表整个太平洋时区,包括PST和 PDT。它将使用 -8 或 -7 作为时区偏移量,具体取决于所使用的特定日期和时间。

  2. 打电话replace(tzinfo=...)是一个错误。localize代替使用。请参阅pytz 文档。这在简介和第一个示例中进行了讨论。