2016-07-07 9 views
6

W Australii klient wprowadził "1/5" jako skrót pierwszego dnia maja. Mamy po prostu przeniósł się z systemu Windows Server 2008 do systemu Windows Server 2012.DateTimeFormatInfo.MonthDayPattern został zmieniony w systemie Windows Server 2012 - jak mogę go przywrócić?

Korzystanie następujący kod w LINQPad:

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

W systemie Windows Server 2008:

DD MMMM

1/05/2016 12:00:00 AM

Na Windows Server 201 2 R2:

MMMM d

5/01/2016 12:00:00 AM

Pytania:

  1. Dlaczego ma MonthDayPattern zmieniło? Australijczycy zawsze mają dzień pierwszy, a następnie miesiąc
  2. Gdzie można to ustawić w interfejsie użytkownika Windows Server? Interfejs użytkownika ujawnia tylko długie i krótkie formaty, a nie format miesiąca i dnia.
  3. Jak mogę rozwiązać problem w mojej aplikacji z najmniejszą ilością zmian, biorąc pod uwagę, że może zdarzyć się, że w całym systemie może wystąpić DateTime.Parse (np. wiążące, Validation etc)
+0

Z której wersji Linqpad korzystasz? – Mick

+0

4, nie mamy .Net 4.6 na serwerze, więc nie można użyć 5 – user917170

Odpowiedz

2

mogę powtórzyć problemu na Windows Server 2012. Jeśli dodać ...

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

zobaczysz powraca ...

d/MM/rrrr

To tylko MonthDayPattern, który wydaje się być nieprawidłowy. To może być błąd. Zapisałbym ten numer na https://connect.microsoft.com/.

W tym czasie można po prostu ustawić 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(); 

W Windows Server 2012 R2:

d/mm/rrrr

MMMM d

5/01/2016 12:00:00 AM

1/05/2016 12:00:00 AM

+0

Myślę, że masz rację, najłatwiejszym rozwiązaniem będzie ustawienie samego formatu na wątku.Nadal nie wyjaśnia, dlaczego problem istnieje, więc będę podnosić problem na connect .... – user917170

+0

Hej @ user917170 - Czy kiedykolwiek słyszałeś coś od Microsoft o tym? Właśnie trafiłem na bardzo podobny problem. Mój serwer przełącza się z MMMM na MMMM, przez co błąd jest jeszcze bardziej losowy i mylący ... – kirbatious

Powiązane problemy