2012-11-15 33 views
6

Trong một mẫu mã cho tôi cho bài tập về nhà của tôi, dòng này xuất hiện:Nhận dạng ngày bằng Python trong Windows

date_format = locale.nl_langinfo(locale.D_FMT) 

Nhưng trong Windows dòng đó trả về lỗi sau:

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' 

tôi đã đọc về việc sử dụng localeconv nhưng tôi chỉ đọc về nó đang được sử dụng tiền tệ hoặc số. Bất kỳ ý tưởng về sử dụng cho mục đích của mẫu mã của tôi hoặc loại khác của chức năng?

Xin cảm ơn trước.

Trả lời

5

Sự cố của bạn có thể là sự thật là locale.nl_langinfo dường như không có sẵn trong Windows Python 2.7.x (Tôi không thấy nó trong bản sao Windows 64 bit Python 2.7 của tôi .3). Nhìn vào các tài liệu tại http://docs.python.org/2.7/library/locale.html#locale.nl_langinfo, họ đặc biệt nói:

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

Khi bạn đã thiết lập miền địa phương lên với một cái gì đó dọc theo dòng:

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

Sau đó, các cuộc gọi đến some_date.strftime() sẽ sử dụng sửa các định dạng và chuỗi địa phương cụ thể chính xác. Vì vậy, nếu bạn muốn ngày ở định dạng chuỗi, hãy gọi some_date.strftime('%x') thay thế %x bằng %X cho thời gian hoặc %c cho cả hai. Danh sách đầy đủ các định dạng strftime được ghi thành tài liệu here.

>>> 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

Và một số cách giải quyết để nhận date_format bằng Python theo cùng cách thức nl_langinfo hoạt động, nhưng không sử dụng? – Shadark

+0

làm cách nào để bạn nhận được chuỗi định dạng ngày/giờ/ngày giờ trên cửa sổ? – Romeno

1

Thử xóa mọi tệp đã được biên dịch trước khỏi thư mục kiểm tra.

Nếu sự cố vẫn tiếp diễn, hãy thử cài đặt lại tiện ích biên dịch của bạn. Có thể đã xảy ra sự cố khi cài đặt