所以我有一些代码在Python 3中使用calendar.month_abbr(在Windows上)。这将返回英文月份名称,即使“附加日期,时间和时间”中的设置也是如此。区域设置'说'荷兰语'这对我来说没什么问题 - 我是在追踪英文名字,所以我从来没有进一步研究它,虽然现在我想起来很奇怪。
现在,当我在Python 2(.7)中使用完全相同的代码时,它会返回荷兰语名称。我想这是因为非Unicode程序的语言'被设定为荷兰语'在我的机器上(这是在上面提到的同一个对话框中的' Administrative'标签中)。
我的代码可能在设置了各种语言环境的计算机上运行。我所追求的是一种强制将calendar.month_abbr的语言环境强制转换为en-US的方法。我没有看到传递任何语言环境的方法,所以我想我必须全局设置它,然后强制重新生成这个列表?除非它的元素是动态生成的?无论哪种方式,对于Python 2.7,我如何将[1-12]范围内的数字转换为英文的三字母缩写,而不管系统设置如何?
答案 0 :(得分:1)
这对你有用吗?
检查您的区域设置:
import calendar
print([calendar.month_abbr[i].lower() for i in range(13)])
然后在解析英文月份名称之前将您的语言环境设置回C或英语。您只需要为LC_TIME类别执行此操作:
import locale
locale.setlocale(locale.LC_TIME, 'C')