python\'s time module seems a little haphazard. For example, here is a list of methods in there, from the docstring:
time() -- return current time in second
mktime documentation is a bit misleading here, there is no meaning saying it's calculated as a local time, rather it's calculating the seconds from Epoch according to the supplied tuple - regardless of your computer locality.
If you do want to do a conversion from a utc_tuple to local time you can do the following:
>>> time.ctime(time.time())
'Fri Sep 13 12:40:08 2013'
>>> utc_tuple = time.gmtime()
>>> time.ctime(time.mktime(utc_tuple))
'Fri Sep 13 10:40:11 2013'
>>> time.ctime(time.mktime(utc_tuple) - time.timezone)
'Fri Sep 13 12:40:11 2013'
Perhaps a more accurate question would be how to convert a utc_tuple to a local_tuple.
I would call it gm_tuple_to_local_tuple (I prefer long and descriptive names):
>>> time.localtime(time.mktime(utc_tuple) - time.timezone)
time.struct_time(tm_year=2013, tm_mon=9, tm_mday=13, tm_hour=12, tm_min=40, tm_sec=11, tm_wday=4, tm_yday=256, tm_isdst=1)
Validatation:
>>> time.ctime(time.mktime(time.localtime(time.mktime(utc_tuple) - time.timezone)))
'Fri Sep 13 12:40:11 2013'
Hope this helps, ilia.