我有来自所有时区的用户,我想在每个用户各自的时区在早上8点左右发出警报。
我需要一个每小时[在一个cron作业]运行的python脚本,我需要找出它现在是8AM的时区,我可以使用该信息来选择必须接收警报的用户。
我该怎么做呢?似乎有gmt + 14到gmt-12这是27个时区,而且一天只有24小时!
答案 0 :(得分:1)
Python定义了一个tzinfo类,它为您提供了时区的偏移量,但它没有提供该类的任何具体实现。有一些实现可用,我已成功使用python-dateutil。显然,你需要为每个用户提供一个时区;在每小时(或半小时)运行时,获取当前UTC时间并将其tzinfo成员设置为UTZ时区;然后使用astimezone
函数依次转换为每个用户的时区,并在8:00左右与某个范围进行比较。
答案 1 :(得分:0)
某些时区以半小时为增量,例如Newfoundland Time为UTC-3:30。您应该能够获得所有偏移并进行适当的数学计算以获得所有通知时间。我会提前做好日程安排,否则你的通知可能会在夏令时转换时出错等等。所以每24小时,你会创建一个时间列表,为下一个发送通知日并适当地指导您的日程安排。