Проблема преобразования str в дату в python, когда языковой стандарт установлен в pt-Br - PullRequest
0 голосов
/ 02 июля 2019

Вот фрагмент моего кода:

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
Traceback (большинствопоследний вызов последним) in () 11 12 ---> 13 datetime_obj = datetime.strptime (date_str, format_str)

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib_strptime.py in () 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 (self, locale_time) 192 self.locale_time = locale_time 193 else: -> 194 self.locale_time = LocaleTime () 195 base = super () 196 base. init ({

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib_strptime.py в init (self) 70 71 "" "---> 72 self.lang = _getlang () 73 self .__ calc_weekday () 74self .__ calc_month ()

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib_strptime.py в _getlang () 29 def _getlang (): 30 # Выяснить, на какой текущий язык установлен. --->31 вернуть locale.getlocale (locale.LC_TIME) 32 33 класс LocaleTime (объект):

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ locale.py в getlocale (категория) 579, если категория == LC_ALLи ';' в localename: 580 повысить TypeError ('категория LC_ALL не поддерживается') -> 581 return _parse_localename (localename) 582 583 def setlocale (категория, локаль = нет):

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ locale.py в _parse_localename (localename) 488 elif code == 'C': 489return None, None -> 490 повышение ValueError ('неизвестная локаль:% s'% localename) 491 492 def _build_localename (localetuple):

ValueError: неизвестная локаль: pt-BR

Есть какие-нибудь подсказки, как решить эту проблему?

Я использую Windows, Python 3.6.5 | Anaconda, Inc. |(по умолчанию, 29 марта 2018 г., 13:32:41) [MSC v.1900 64 бит (AMD64)]

1 Ответ

1 голос
/ 02 июля 2019

Попробуйте это

locale.setlocale(locale.LC_ALL, "pt_br")
...