stftime %z time conversion character

E

Evan Klitzke

Although it is not present in ANSI C, the GNU version of stftime
supports the conversion character %z, which is a time offset from GMT.
The four digit time offset is required in RFC 2822 dates/times, and is
used by a number of other programs as well. I need to convert times
that use this convention to python time representations, and because
Python does not support the %z time conversion character I cannot
simply use the time.strptime function.

What solutions have people used for this? I'm currently thinking of
creating a dict that maps four digit time offsets to the time zone
name and then use the %Z token on that. Is there another (or better)
way?
 
P

Paul Boddie

Evan said:
Although it is not present in ANSI C, the GNU version of stftime
supports the conversion character %z, which is a time offset from GMT.
The four digit time offset is required in RFC 2822 dates/times, and is
used by a number of other programs as well. I need to convert times
that use this convention to python time representations, and because
Python does not support the %z time conversion character I cannot
simply use the time.strptime function.

See this patch for an idea of the scope of this problem:

https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1667546&group_id=5470
What solutions have people used for this? I'm currently thinking of
creating a dict that maps four digit time offsets to the time zone
name and then use the %Z token on that. Is there another (or better)
way?

Apart from a patch which would allow the time module functions to
produce the output you desire, an alternative might involve the
datetime module and timezone-aware datetime objects:

http://groups.google.com/group/comp.lang.python/msg/9848f3054b4f3eae

I refer indirectly to the pytz module in the above message:

http://pytz.sourceforge.net/

Paul
 
E

Evan Klitzke

See this patch for an idea of the scope of this problem:

https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1667546&group_id=5470


Apart from a patch which would allow the time module functions to
produce the output you desire, an alternative might involve the
datetime module and timezone-aware datetime objects:

http://groups.google.com/group/comp.lang.python/msg/9848f3054b4f3eae

I refer indirectly to the pytz module in the above message:

http://pytz.sourceforge.net/

Paul

Thanks Paul, your answer was very helpful.
 
S

sergio

Evan said:
Although it is not present in ANSI C, the GNU version of stftime
supports the conversion character %z, which is a time offset from GMT.
The four digit time offset is required in RFC 2822 dates/times, and is
used by a number of other programs as well. I need to convert times
that use this convention to python time representations, and because
Python does not support the %z time conversion character I cannot
simply use the time.strptime function.

What solutions have people used for this? I'm currently thinking of
creating a dict that maps four digit time offsets to the time zone
name and then use the %Z token on that. Is there another (or better)
way?

I had a similar problem, currently I had solved with a system call

#The Linux Date Command: TZ=WET date -d "20070823" +%:z
#example
timezone = "WET"
year = 2007
month = 2
day = 27
#end of example
cmd="TZ=%s /bin/date -d %.4d%.2d%.2d +%%z" % (timezone,year,month,day)
print "DEBUG cmd=%s" % cmd
handler=os.popen(cmd, 'r', 1)
output = "".join(handler.readlines()).strip()
tz=output[:3]+":"+output[3:]
handler.close()
print "DEBUG timezone=%sXX" % tz

----------------------------
before I test timezone of my machines like this :
import time
tzstr=time.strftime("%Z",time.localtime())
if tzstr == "WEST" :
do something

Hope that can help something

Best regards,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,999
Messages
2,570,243
Members
46,836
Latest member
login dogas

Latest Threads

Top