Letzte Nacht wanderten wir unsere Web-Services-Tier von physischen Windows 2008 R2 auf virtuellen Windows-2012DateTimeFormat.AbbreviatedMonthNames Name einen Punkt am Ende des Monats das Hinzufügen
Wir Tonnen Ereignisse auf unsere Protokolle über Datetime die ungültige Formate bekommen , seltsam, als wir unsere regionalen Einstellungen überprüft haben.
Lange Rede kurzer Sinn:
CultureInfo.GetCultureInfo("es-MX").DateTimeFormat.AbbreviatedMonthNames
Ausgänge (mit LinqPad5):
- ene.
- Feb.
- mar.
auf unserer neuen 2012 env während auf 2008 ouptus:
- ene
- FEBRUAR
- mar
Unsere Analyse ist so etwas wie folgt aus:
DateTime.Parse("18 ene 16",CultureInfo.GetCultureInfo("es-MX"))
Und während es Wunder gewirkt hat, wirft es jetzt
FormatException : The string was not recognized as a valid DateTime. There is an unknown word starting at index 3.
.
Während
DateTime.Parse("18 ene. 16",CultureInfo.GetCultureInfo("es-MX"))
funktioniert, ist aber nicht die erwartete Eingabe von unseren einigen Kunden.
Arbeiten mit der gleichen Laufzeitversion (4.0.30319.42000), doppelt überprüft (wieder) unsere regionalen Einstellungen auf beiden Servern, was kann ich noch suchen, um dies zu beheben (vor aufgeben und hacken es mit einem Regex ersetzen)?
Danke.
Jemand hat wahrscheinlich die Konfiguration im alten Server vor vielen Jahren geändert. Sie müssen es erneut auf dem neuen tun. Verwenden Sie die Systemsteuerung> Region. –
Sind Sie sich über die Laufzeitversion sicher? 2008 R2 wurde mit 3.5.1 framework ausgeliefert, das den abbr. Namen ohne Punkt, während 2012 mit 4.5 Framework geliefert wird, das die Abkürzung ausgibt. Namen mit einem Punkt. Sie könnten versuchen, die Framework-Version (wenn möglich) auf 3.5 zu ändern? – Uwe
@HansPassant: Ja, wir überprüfen beide Konfigurationen erneut, ich werde Sie wissen lassen, ob ich etwas finde. – DSXP