我试图根据印度标准时间在apscheduler中添加一份工作
scheduler.add_job('cron',start_date=date, hour=time[0], minute=time[1], id=str(job[0]),timezone='IST')
但每次发出错误时UnknownTimeZoneError:' IST'。 调度程序正在接受EST,UTC等,但不接受IST。
IST是印度标准时间的正确时区吗?如果不是,我如何根据IST安排工作?
答案 0 :(得分:1)
根据comments in source code,您可以将datetime.tzinfo
对象传递给调度程序:
:param str | datetime.tzinfo timezone:默认时区(默认为本地时区)
考虑到上述情况,您可以尝试以下操作:
import datetime
tz = datetime.timezone(datetime.timedelta(hours=5, minutes=30))
scheduler.add_job('cron',start_date=date, hour=time[0], minute=time[1], id=str(job[0]),timezone=tz)
更新:Python 2并未提供tzinfo
类的具体实现,但您可以roll your own:
import datetime
class IST(datetime.tzinfo):
def utcoffset(self, dt):
return datetime.timedelta(hours=5, minutes=30)
def tzname(self, dt):
return "IST"
def dst(self, dt):
return datetime.timedelta()
tz = IST()
print datetime.datetime.now(tz)
输出:
2016-12-01 14:33:37.031316+05:30