Почему Python хранит строки формата времени для немецкого и испанского (и других?) Как% T в модуле локали?

Я пишу тест для программы, которая будет использоваться в нескольких регионах. Во время выполнения теста на немецком языке я получил ошибку

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'

для обработки этих случаев?

8
задан Community 23 May 2017 в 11:43
поделиться