Я пишу тест для программы, которая будет использоваться в нескольких регионах. Во время выполнения теста на немецком языке я получил ошибку
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/_strptime.py", line 454, in _strptime_time
return _strptime(data_string, format)[0]
File "/usr/local/lib/python2.7/_strptime.py", line 317, in _strptime
(bad_directive, format))
ValueError: 'T' is a bad directive in format '%T'
. Копаясь в этом, я обнаружил, что использование locale.nl_langinfo (locale.T_FMT)
в то время как на немецком или испанском (и, возможно, других языках) дает формат строка '% T'
. Это не распознается в модуле времени
.
В документации по locale
на python.org ничего не упоминается о возврате '% T'
. Единственная ссылка на '% T'
, которую я мог найти где угодно, - это ответ на отдельный вопрос StackOverflow . Исходя из этого сообщения и контекста, я предполагаю, что '% T'
- это сокращение для '% H:% M:% S'
.
Мой вопрос:как мне обработать языковые стандарты, для которых locale
вернет '% T'
в качестве строки формата, не выполняя что-то вроде
if fmt_str == '%T':
fmt_str = '%H:%M:%S'
для обработки этих случаев?