Ich analysiere einen DateTime-Wert in einer ASP.NET WebForms
-Seite und der Datumsstring wird immer wieder von der DateTime.TryParseExact()
-Methode abgelehnt, obwohl sie eindeutig einer der angegebenen Formatzeichenfolgen entspricht.DateTime.TryParseExact() gültige Formate ablehnen
Es scheint auf meiner Entwicklung Maschine zu Hause zum Scheitern verurteilt, aber auf dem Produktionsserver zu arbeiten, so dass ich von lokalen Datumseinstellungen dächte beteiligt, aber dieser Fehler tritt auf, auch wenn ich ein IFormatProvider (CultureInfo)
Objekt als Parameter
liefern hier ist der Code:
DateTime startDate;
string[] formats = { "dd/MM/yyyy", "dd/M/yyyy", "d/M/yyyy", "d/MM/yyyy",
"dd/MM/yy", "dd/M/yy", "d/M/yy", "d/MM/yy"};
var errStart = row.FindControl("errStartDate"); //my date format error message
if (!DateTime.TryParseExact(txtStartDate.Text, formats, null, DateTimeStyles.None, out startDate))
{
errStart.Visible = true; //we get here even with a string like "20/08/2012"
return false;
}
else
{
errStart.Visible = false;
}
Hinweis ich bin ein null FormatProvider
in der oben geben, aber das gleiche Problem tritt auf, wenn ich ein CultureInfo
Objekt als (CultureInfo provider = new CultureInfo("en-US"))
für diesen Parameter liefern.
Was fehlt mir?
In der US-Kultur, Datumsformate m/d/y d/m/y nicht – StuartLC
Auch ohne Formatprovider zu erwähnen, scheint dieser Code zu funktionieren für mich. Versuchen Sie, InvariantCulture anzugeben. – danish