这是我的代码的片段:
import locale
from datetime import datetime
locale.setlocale(locale.LC_ALL, "pt-BR") # Windows
#### doing stuff with locale (like converting number 1.000,00)
#####
date_str = '29/12/2017' # The date - 29 Dec 2017
format_str = '%d/%m/%Y' # The format
datetime_obj = datetime.strptime(date_str, format_str)
仅使用此小代码,我会收到以下错误:
ValueError
()中的回溯(最近一次通话最近) 11 12 ---> 13 datetime_obj = datetime.strptime(date_str,format_str)〜(\)中的\ AppData \ Local \ Continuum \ anaconda3 \ lib_strptime.py 278#在未获取缓存锁的情况下,请勿修改_TimeRE_cache或_regex_cache 279#第一! -> 280 _TimeRE_cache = TimeRE() 281 _CACHE_MAX_SIZE = 5#_regex_cache中存储的最大正则表达式数量 282 _regex_cache = {}
〜\ AppData \ Local \ Continuum \ anaconda3 \ lib_strptime.py在 init (自身, locale_time) 192 self.locale_time =语言环境时间 193其他: -> 194 self.locale_time = LocaleTime() 195基= super() 196个基数。初始化({
〜\ AppData \ Local \ Continuum \ anaconda3 \ lib_strptime.py在 init 中(自己) 70 71“”“ ---> 72 self.lang = _getlang() 73 self .__ calc_weekday() 74 self .__ calc_month()
_getlang()中的〜\ AppData \ Local \ Continuum \ anaconda3 \ lib_strptime.py 29 def _getlang(): 30#找出当前的语言设置。 ---> 31返回locale.getlocale(locale.LC_TIME) 32 33类LocaleTime(object):
〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ locale.py在 getlocale(类别) 579如果类别== LC_ALL和';'在语言环境名称中: 580提高TypeError('不支持类别LC_ALL') -> 581 return _parse_localename(localename) 582 583 def setlocale(category,locale = None):
〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ locale.py在 _parse_localename(语言环境名称) 488 elif code =='C': 489返回无,无 -> 490提高ValueError('未知语言环境:%s'%localename) 491 492 def _build_localename(localetuple):
ValueError:未知语言环境:pt-BR
有什么线索可以解决这个问题吗?
我正在运行Windows,Python 3.6.5 | Anaconda,Inc. | (默认值,2018年3月29日,13:32:41)[MSC v.1900 64位(AMD64)]
答案 0 :(得分:1)
尝试一下
locale.setlocale(locale.LC_ALL, "pt_br")
答案 1 :(得分:1)
在Windows上转到
控制面板->时钟和区域->区域->管理(选项卡)->更改系统区域设置(按钮)->将语言更改为葡萄牙语(巴西)->重新启动计算机
现在在您的代码上将语言环境设置为
locale.setlocale(locale.LC_ALL,'pt-BR.UTF-8')
我和你一样遇到同样的问题。我的错误是语言名称中缺少“ .UTF-8”。