2016-12-01 6 views
0

И стараясь добавить работу в apscheduler согласно индийскому стандартного времениUnknownTimeZoneError: «IST» для 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?

ответ

1

По comments in source code вы можете передать datetime.tzinfo объект в планировщике:

:param str|datetime.tzinfo timezone: the default time zone (defaults to the local 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 
+0

расшифрованы ли модуль часового пояса в 2.7.12? потому что он дает мне объект ошибки, не имеет часовой пояс модуля. Нужно ли мне импортировать другой пакет? –

+0

@ketankhandagale Обновлено для Python 2 – niemmi

+0

спасибо !! .. Я использовал tz = pytz.timezone ('Asia/Calcutta') ..... :) –

Смежные вопросы