We can use time.tzname
get a local timezone name, but that name is not compatible with pytz.timezone
.
In fact, the name returned by time.tzname
is ambiguous. This method returns ('CST', 'CST')
in my system, but 'CST' can indicate four timezones:
A very simple method to solve this question:
import time
def localTzname():
offsetHour = time.timezone / 3600
return 'Etc/GMT%+d' % offsetHour
Update: @MartijnPieters said 'This won't work with DST / summertime.' So how about this version?
import time
def localTzname():
if time.daylight:
offsetHour = time.altzone / 3600
else:
offsetHour = time.timezone / 3600
return 'Etc/GMT%+d' % offsetHour