By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,364 Members | 1,536 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,364 IT Pros & Developers. It's quick & easy.

stftime %z time conversion character

P: n/a
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?

--
Evan Klitzke <ev**@yelp.com>
Jun 19 '07 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Evan Klitzke wrote:
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/?fun...&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....48f3054b4f3eae

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

http://pytz.sourceforge.net/

Paul

Jun 19 '07 #2

P: n/a
On 6/19/07, Paul Boddie <pa**@boddie.org.ukwrote:
Evan Klitzke wrote:
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/?fun...&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....48f3054b4f3eae

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

http://pytz.sourceforge.net/

Paul
Thanks Paul, your answer was very helpful.

--
Evan Klitzke <ev**@yelp.com>
Jun 20 '07 #3

P: n/a
Evan Klitzke wrote:
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,
--
Sérgio M. B.
Jun 20 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.