使用pytz、datetime和Python 3自定义显示给用户的时区

使用pytz、datetime和Python 3自定义显示给用户的时区,python,Python,我有一个用户列表: tom, 0530, eastern dick, 0745, pacific harry, 0915, central ect... 我需要在特定时间(或5分钟内)为他们的时区向他们发送电子邮件。我一直在编写一个python脚本,每5分钟用cron运行一次 ## pseudo code: for user in users: if difference of usertime and utctime is <= 5 minutes: send email

我有一个用户列表:

tom, 0530, eastern
dick, 0745, pacific
harry, 0915, central
ect...
我需要在特定时间(或5分钟内)为他们的时区向他们发送电子邮件。我一直在编写一个python脚本,每5分钟用cron运行一次

## pseudo code:
for user in users:
  if difference of usertime and utctime is <= 5 minutes:
    send email
我们称之为“鼹鼠山造山”:

听起来您对用户希望发送电子邮件的时间以及他们所在的时区有自己的偏好

例如,
tom=(“美国/东部”,“09:15”)

当脚本运行时,它必须做的第一件事是建立UTC中的当前时间

from datetime import datetime
current_time = datetime.utcnow()
然后,您需要将用户的当前时间和首选项时间转换为UTC时间


完成此操作后,您可以从另一个中减去一个,并与设置的阈值(5分钟)进行比较,以确定是否是发送电子邮件的正确时间。

为什么不将每次都存储在同一时区(例如UTC)?
from datetime import datetime
current_time = datetime.utcnow()
tz = timezone('US/Pacific')
def toUTC(d):
    return tz.normalize(tz.localize(d)).astimezone(pytz.utc)