您的问题可能是locale.nl_langinfo
Windows Python 2.7.x 中似乎不可用的事实(我在我的 Windows 64 位 Python 2.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')
替换%x
为%X
时间或%c
两者。此处记录了 strftime 格式的完整列表。
>>> 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'