2016-07-07 19 views
6

Ở Úc, một khách hàng đã nhập "1/5" làm lối tắt cho ngày đầu tiên của tháng 5. Chúng tôi vừa chuyển từ Windows Server 2008 lên Windows Server 2012.DateTimeFormatInfo.MonthDayPattern Đã thay đổi trong Windows Server 2012 - Làm thế nào tôi có thể thiết lập lại?

Sử dụng đoạn mã sau vào LinqPad:

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-au", false); 
System.Globalization.DateTimeFormatInfo.CurrentInfo.MonthDayPattern.Dump(); 
DateTime.Parse("1/5").Dump(); 

Trên Windows Server 2008:

dd MMMM

1/05/2016 12:00:00 AM

Trên Windows Server 201 2 R2:

MMMM d

5/01/2016 12:00:00 AM

Câu hỏi:

  1. Tại sao các MonthDayPattern thay đổi? Người Úc luôn có ngày đầu tiên, sau đó tháng
  2. Điều này có thể được đặt trong giao diện người dùng Windows Server ở đâu? Giao diện người dùng chỉ hiển thị định dạng dài và ngắn, không phải định dạng tháng và ngắn
  3. Làm cách nào để khắc phục sự cố trong ứng dụng của tôi với số lượng thay đổi ít nhất, có thể là DateTime.Parse xảy ra trên toàn hệ thống. Ràng buộc, Validation vv)
+0

Bạn đang sử dụng phiên bản Linqpad nào? – Mick

+0

4, chúng tôi không có .Net 4.6 trên máy chủ vì vậy không thể sử dụng 5 – user917170

Trả lời

2

tôi có thể tái tạo vấn đề này trên Windows server 2012. Nếu bạn thêm ...

System.Globalization.DateTimeFormatInfo.CurrentInfo.ShortDatePattern.Dump(); 

bạn sẽ thấy nó trả về ...

d/MM/yyyy

Chỉ có MonthDayPattern có vẻ không chính xác. Đây có thể là một lỗi. Tôi sẽ đăng vấn đề trên https://connect.microsoft.com/.

Trong lúc này bạn chỉ có thể thiết lập các MonthDayPattern ....

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-au", false); 
System.Globalization.DateTimeFormatInfo.CurrentInfo.ShortDatePattern.Dump(); 
System.Globalization.DateTimeFormatInfo.CurrentInfo.MonthDayPattern.Dump(); 
DateTime.Parse("1/5").Dump(); 
System.Globalization.DateTimeFormatInfo.CurrentInfo.MonthDayPattern = "d MMMM"; 
DateTime.Parse("1/5").Dump(); 

Trên Windows Server 2012 R2:

d/MM/yyyy

MMMM d

5/01/2016 12:00:00 AM

1/05/2016 12:00:00 AM

+0

Tôi nghĩ rằng bạn là chính xác, giải pháp dễ nhất sẽ là đặt định dạng chính mình trên chuỗi.Vẫn không giải thích tại sao vấn đề tồn tại, vì vậy tôi sẽ đưa ra một vấn đề về kết nối .... – user917170

+0

Hey @ user917170 - bạn có bao giờ nghe bất kỳ điều gì từ Microsoft về điều này không? Tôi vừa mới nhấn một vấn đề rất giống nhau. Máy chủ của tôi chuyển từ dd MMMM sang d MMMM khiến lỗi thậm chí còn ngẫu nhiên và khó hiểu hơn ... – kirbatious

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