有没有办法从国家或时区获取区域设置?

时间:2012-03-23 12:30:40

标签: python timezone locale

我用Python编写程序,我需要根据用户的语言环境输出日期:

  1. 获取按用户输入指定的国家/地区的时区列表(使用pytz执行此操作)
  2. 获取用户的区域设置(我无法弄清楚该怎么做)
  3. 有没有办法从县/时区获取区域设置或需要遵循其他方法?

    或者我是否需要从用户自己获取区域设置?

    修改

    该计划将成为一个网络应用程序。用户可以向我提供他的国家。但是他是否必须明确地向我提供当地语言,或者我可以从他的时区/国家/地区获得它吗?

2 个答案:

答案 0 :(得分:6)

我认为不可能将country + timezone转换为单个'正确'的语言环境...在具有多种语言的国家/地区,语言与时区之间不存在1:1的关系。

我能看到的最近的是使用Babel

from babel import Locale
Locale.parse('und_BR')  # 'und' here means unknown
>>> Locale('pt', territory='BR')

这为您提供了该国家/地区的“最有可能”(或默认)区域设置。要正确处理语言,您需要询问用户他们的首选语言。

答案 1 :(得分:-3)

使用pycountry执行此操作。

sudo pip install pycountry