Je dois écrire une fonction python très simple qui accepte une date au format Excel (un nombre entier de jours écoulés depuis 1er janvier 1900). Je convertis cela en un objet python datetime.date, et enfin je voudrais formater cela comme une date de chaîne raccourcie (par exemple "Jan10" ou "Mar11") - essentiellement la date au format MmmYY.Force locale pour qu'une fonction soit UK/English dans une seule fonction afin que datetime.strftime retourne toujours un format anglais
dt.strftime(fmt)
Cette fonction fonctionne très bien sur le Royaume-Uni & Les postes de travail des États-Unis, mais je l'ai remarqué que sur certains collègues PC qui sont fixés à un environnement local français nous obtenons le mauvais Anser:
>>> locale.getdefaultlocale()
('fr_FR', 'cp1252')
Sur ces machines la fonction ci-dessus renvoie la chaîne de date formatée en français qui n'est pas la sortie désirée.
Je comprends que je pourrais utiliser la fonction locale.setlocale pour redéfinir globalement les paramètres régionaux, mais ce n'est pas quelque chose qui est souhaitable. Ailleurs dans le système, il est probable que des scripts nécessitent un environnement local en langue native. Je ne souhaite pas casser le composant de quelqu'un d'autre en redéfinissant une locale globale.
Alors, que puis-je faire? À moins de réécrire la fonction de formatage de chaîne, est-ce que je peux faire en sorte que la fonction strftime produise sa sortie dans les paramètres régionaux du Royaume-Uni et des États-Unis sans affecter quoi que ce soit d'autre?
Platform = Python2.4.4 sous Windows 32bit
Pour votre information, cette solution ne s'applique pas - il modifie les paramètres régionaux dans le monde qui est exactement ce que je veux éviter de faire: Locale date formatting in Python