Мне нужно написать очень простую функцию Python, которая принимает дату в формате Excel (целое число дней, прошедших с 1 января 1900 года). Я преобразую это в объект datetime.date в python, и, наконец, я хотел бы отформатировать его как сокращенную строковую дату (например, «Jan10» или «Mar11») - в основном это дата в формате MmmYY.
dt.strftime( fmt )
Эта функция прекрасно работает на рабочих станциях в Великобритании и США, однако я заметил, что на некоторых компьютерах коллег, работающих на французском языке, мы получаем неправильный ансер:
>>> locale.getdefaultlocale()
('fr_FR', 'cp1252')
На этих машинах вышеприведенная функция возвращает форматированную строку даты на французском языке, что не является желаемым выводом.
Я понимаю, что мог бы использовать функцию locale.setlocale для глобального переопределения локали, однако это не то, что желательно. В других местах системы могут быть сценарии, для которых требуется языковой стандарт на родном языке. Я не хочу нарушать чей-то компонент путем переопределения глобальной локали.
Так что я могу сделать? Если не считать переписывания функции форматирования строки, есть ли способ заставить функцию strftime выводить ее в локали Великобритании / США, не затрагивая ничего другого?
Платформа = Python2.4.4 в Windows 32bit
К вашему сведению, это решение не применимо - оно глобально меняет локаль, чего я и не хочу делать:
Форматирование даты в Python