2012-11-15 16 views
6

In einem Beispielcode mir gegeben für meine Hausaufgaben holen diese Zeile erscheint:Datumsformat in Python in Windows

date_format = locale.nl_langinfo(locale.D_FMT) 

Aber in Windows diese Zeile gibt die folgenden Fehler:

File "C:\Users\Shadark\Dropbox\IHM\P3\p3_files\www\cgi-bin\todolist.py", line 11, in <module> 
date_format = locale.nl_langinfo(locale.D_FMT) 
AttributeError: 'module' object has no attribute 'nl_langinfo' 

I habe über die Verwendung von localeconv lesen, aber ich nur darüber gelesen verwendete Währung oder Zahlen zu sein. Irgendeine Idee auf Verwendungen für den Zweck meiner Codebeispiel oder andere Art von Funktion?

Vielen Dank im Voraus.

Antwort

5

Ihr Problem ist wahrscheinlich die Tatsache, dass locale.nl_langinfo scheint nicht in Windows Python 2.7.x (ich sehe es nicht in meiner Kopie von Windows 64-Bit Python 2.7 .3). Mit Blick auf die docs an http://docs.python.org/2.7/library/locale.html#locale.nl_langinfo, sagen sie speziell:

This function is not available on all systems, and the set of possible options might also vary across platforms.

Sobald Sie das Gebietsschema mit etwas eingerichtet haben entlang der Linien von:

locale.setlocale(locale.LC_ALL, 'english') 

Dann ruft (auf some_date.strftime) wird verwenden korrekte länderspezifische Formatierung und Zeichenfolgen Also, wenn Sie das Datum im String-Format mögen, rufen some_date.strftime('%x') die %x mit %X für Zeit oder %c für beide ersetzen. Die vollständige Liste der strftime-Formate werden here dokumentiert.

>>> d = datetime.datetime.now() 
... for loc in ('english', 'german', 'french'): 
...  locale.setlocale(locale.LC_ALL, loc) 
...  print loc, d.strftime('%c -- %x -- %X -- %B -- %A') 
english 11/15/2012 4:10:56 PM -- 11/15/2012 -- 4:10:56 PM -- November -- Thursday 
german 15.11.2012 16:10:56 -- 15.11.2012 -- 16:10:56 -- November -- Donnerstag 
french 15/11/2012 16:10:56 -- 15/11/2012 -- 16:10:56 -- novembre -- jeudi 
14: 'French_France.1252' 
+2

Und einige Workarounds zum Abrufen von date_format in Python in der gleichen Weise wie nl_langinfo funktioniert, aber ohne es zu benutzen? – Shadark

+0

wie Sie Datum/Zeit/Datums-Zeitformat String auf Fenster bekommen? – Romeno

1

Versuchen Sie, vorkompilierte Dateien aus dem Testverzeichnis zu entfernen.

Wenn das Problem weiterhin besteht, versuchen Sie Ihre Kompilierung Erweiterung neu zu installieren. Vielleicht gab es ein Problem mit der Installation