Если вы хотите буквально только то, что вы просили, «имя часового пояса в форме America / New_York, соответствующее системному локальному часовому поясу», и если вы заботитесь только о Linux (и аналогичных), то это должно сработать :
import os
import os.path
import sys
def main(argv):
tzname = os.environ.get('TZ')
if tzname:
print tzname
elif os.path.exists('/etc/timezone'):
print file('/etc/timezone').read()
else:
sys.exit(1)
if __name__ == '__main__':
main(sys.argv)
Конечно, было бы лучше иметь библиотеку, которая бы инкапсулировала это более понятным способом, и, возможно, обрабатывает другие случаи, которые вы упоминаете в комментариях, например, уже есть объект tzinfo
. Я думаю, что вы можете сделать это с pytz , упомянутым Амбер, но для меня не очевидно, как ...