Because of DST (Daylight Saving Time), the result depends on the time of the year:
import datetime, pytz
datetime.datetime.now(pytz.timezone('Asia/Jerusalem')).strftime('%z')
# returns '+0300' (because 'now' they have DST)
pytz.timezone('Asia/Jerusalem').localize(datetime.datetime(2011,1,1)).strftime('%z')
# returns '+0200' (because in January they didn't have DST)
I faced a similar issue while converting to UTC timestamp from python datetime object. My datetime was timezone agnostic (very naive) and as such astimezone would not work.
To mitigate the issue, I made my datetime object timezone aware and then used the above magic.