2012-03-14 22 views
21

trên một máy nhà phát triển (cassini)cách thay đổi ngày en-US thành en-GB cho asp.net?

new DateTime(2012,3,14).ToString("d") 

kết quả trong

14/03/2012 

đó là chính xác nhưng khi triển khai đến một máy chủ IIS đầy đủ kết quả là

03/14/2012 

máy chủ được thiết trong bảng điều khiển/ngôn ngữ vùng cho tất cả tiếng Anh/UK/GB, ngày chạy trong dấu nhắc lệnh trả về định dạng dd/MM/YYYY.

Trang web được đặt cho cả uiCulture="en-GB"culture="en-GB" và những trang này hiển thị trong thẻ toàn cầu web.config.

tôi có thể làm việc xung quanh vấn đề này bằng cách thêm một nền văn hóa buộc

new DateTime(2012,3,14).ToString("d", new CultureInfo("en-GB")); 

nhưng tôi thực sự muốn biết những gì là thiết lập các định dạng không đúng.

CultureInfo.CurrentCulture.Name, CultureInfo.CurrentUICulture.Name 

cả trở en-US


  • en-US: M/d/yyyy (ví dụ 3/14/2012)
  • en-GB: dd/MM/yyyy (ví dụ 14/03/2012)

Giá trị thực tế trong web.config

<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" uiCulture="en-GB" culture="en-GB" /> 
+0

Đăng đoạn mã từ phần 'toàn cầu hóa 'của' web.config'. Ngôn ngữ được sử dụng để chuyển đổi ngày và số xuất phát từ 'System.Threading.Thread.CurrentThread.CurrentCulture'; văn hóa nào trở lại? –

+0

Tắt chủ đề: bạn có cân nhắc sử dụng IIS Express thay vì Casini để có được kết quả tương tự như trong sản xuất trên IIS không? – Richard

Trả lời

26

tôi quản lý để làm cho nó làm việc bằng cách đặt này vào web.config

<globalization culture="en-GB"/> 
+1

Tôi nghĩ chính nó là câu hỏi * Trang web được đặt cho cả uiCulture = "en-GB" và culture = "en-GB" và hiển thị trong thẻ global.config globalization. * – V4Vendetta

+0

Tốt, nếu bạn muốn mang nó xa hơn, bạn cũng có thể thêm nó vào máy.tệp cấu hình trong C: \ Windows \ Microsoft.NET \ Framework \ [phiên bản khung công tác] \ Config \ Machine.config (hoặc đường dẫn tương tự). Sau đó, thay đổi sẽ áp dụng cho tất cả các ứng dụng .NET, nhưng không ảnh hưởng đến các cài đặt toàn cầu hóa chung trên máy chủ. –

+0

sự hiểu biết của tôi là web.config trumps machine.config – rob

4

Trong web.config bạn thêm

<globalization culture='auto' uiCulture='auto' /> 

và sau đó, giả sử trình duyệt được định cấu hình chính xác để chuyển miền địa phương ưa thích, xử lý chuỗi công việc yêu cầu sẽ có CurrentCultureCurrentUICulture đặt chính xác của nó .

Bất kỳ hoạt động nào phụ thuộc vào miền địa phương (bao gồm những điều như DateTime định dạng d) sẽ sử dụng tùy chọn của khách hàng.

Yếu tố toàn cầu hóa của web.config trên MSDN: https://msdn.microsoft.com/en-us/library/ydkak5b9(v=vs.71).aspx

+0

trước khi tôi bắt đầu xem xét vấn đề thẻ toàn cầu hóa chỉ có cài đặt UTF-8 và tôi đã thử nhiều trình duyệt/máy để đảm bảo rằng trình duyệt không phải là thủ phạm. – rob

+1

đã thử tự động, vẫn là en-US cho bất kỳ khách hàng nào – rob

+0

@rob Tiêu đề 'Accept-Language' của yêu cầu HTTP là gì? ([Fiddler] (http://www.fiddler2.com/fiddler2/) là một công cụ cực kỳ hữu ích trong những trường hợp này). – Richard

Các vấn đề liên quan