Ich habe einige Schwierigkeiten Parsing Strings von DateTime mit DateTime.ParseExact.Parsing DateTime Strings
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;
// Parse date-only value with invariant culture.
//format = "mm/dd/yyyy";
format = "d";
try
{
result = DateTime.ParseExact(data+" 12:00:00 AM", format, provider);
}
Daten ist eine String-Variable geladen mit Daten des Formats "5/20/2009". Ich habe versucht, eine falsche Zeit anzuhalten, nur um zu sehen, ob das funktionieren würde, und es nicht (mit oder ohne die Wende). Ich habe auch versucht, mit dem "g" -Format Specifier und es hat nicht funktioniert, ich bekomme immer die Ausnahme, dass es keine gültige DateTime-String ist. Die einzigen Daten, für die es funktioniert, sind wie "12/20/2009" (2 Ziffern im "MM" Teil)
Ich kann diese Routine nicht mit einstelligen Monaten arbeiten! Microsofts eigenes Beispiel von MSDN ist
6/15/2009 1:45:30 PM -> 6/15/2009 (en-US)
und es wird nicht damit arbeiten. Ich verstehe nur nicht, was ich falsch mache. Ich habe auch meine eigenen Formatbezeichner wie "MM/TT/JJJJ" und "MM/TT/JJJJ" ausprobiert, aber ohne Erfolg.
Warum muss ich diese Kultur angeben? Auch das ist nicht ParseExact. Wir wissen genau, aus welchem Format die Datumszeichenfolgen stammen, warum kann eine Formatzeichenfolge nicht verwendet werden? Dadurch könnten wir Dinge einbringen, die nicht da sein sollten (die Angabe der Zeit in einem Datumsfeld ist ein Nein.) – Earlz
Ich habe mein Beispiel in ParseExact geändert. Sie müssen eine Kultur angeben, weil Sie sagen, dass Ihre Eingabe in einer kulturspezifischen Weise (nämlich im US-amerikanischen Format) analysiert werden soll. – dtb
Ok, ich dachte nur Invariant meinte US .. vielen Dank! – Earlz