9

宿題のために私に与えられたサンプルコードでは、次の行が表示されます。

date_format = locale.nl_langinfo(locale.D_FMT)

しかし、Windowsでは、その行は次のエラーを返します。

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'

localeconvの使用について読んだことがありますが、使用されている通貨または数値についてのみ読んでいます。私のコードサンプルまたは他の種類の関数の目的での使用に関するアイデアはありますか?

前もって感謝します。

4

2 に答える 2

6

あなたの問題はおそらく、locale.nl_langinfoWindows Python 2.7.xでは利用できないように見えるという事実です(Windows64ビットPython2.7.3のコピーには表示されません)。http://docs.python.org/2.7/library/locale.html#locale.nl_langinfoのドキュメントを見ると、具体的には次のようになっています。

この機能はすべてのシステムで使用できるわけではなく、可能なオプションのセットもプラットフォームによって異なる場合があります。

次の行に沿ってロケールを設定したら、次のようにします。

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

次に、some_date.strftime()の呼び出しは、正しいロケール固有のフォーマットと文字列を使用します。したがって、文字列形式の日付が必要な場合は、some_date.strftime('%x')replace withfortimeまたはその両方%xを呼び出します。strftime形式の完全なリストは、ここに記載されています。%X%c

>>> 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'
于 2012-11-15T16:30:41.903 に答える
1

テストディレクトリからコンパイル済みファイルを削除してみてください。

問題が解決しない場合は、コンパイル拡張機能を再インストールしてみてください。インストールに問題があった可能性があります

于 2012-11-15T16:22:28.790 に答える