Frage

Auf einem 32-Bit-Betriebssystem, mit einem Intel-Prozessor, Datumzeit z.B. 2009.02.17 00.00.00 Beachten Sie, dass es ist: mm / DD // yyyy

Auf einem 64-Bit-Betriebssystem, mit einem AMD-Prozessor, Datumzeit z.B. 17-02-2009 00.00.00

Nun, wenn ich versuche, das erste Format zu analysieren, wirft er einen Fehler auf der zweiten Plattform. Das bedeutet - DateTime.Parse ( „2009.02.17 00.00.00“) - wirft einen Fehler - nicht konvertieren kann. wohingegen auf der gleichen Plattform, DateTime.Parse ( "17/2/2009 00.00.00") funktioniert! Das bedeutet, TT / MM ist in Ordnung, MM / DD nicht.

Was ist der Grund dafür? Das 64-Bit-Betriebssystem? Der Prozessor?

Wie werde ich das Problem beheben?

War es hilfreich?

Lösung

Datetime selbst keine Formate. Sie analysieren sie oder sie in Strings formatieren. (Es ist wie Zahlen - Zahlen in hex oder dezimal nicht gespeichert sind, sind sie nur ganze Zahlen Sie sie in hex oder dezimal formatieren können, aber der Wert selbst ist nur eine Zahl.).

Das Format wird auf die Kultur des Betriebssystems ab (oder genauer gesagt, die Kultur des Fadens, die typischerweise die gleichen wie das Betriebssystem ist eins).

Persönlich mag ich ausdrücklich das Format einstellen I entweder für Parsing oder Formatierung verwenden, es sei denn, ich bin tatsächlich die Zeichenfolge für den Benutzer und weiß, dass die Kultur bereits angemessen ist.

Andere Tipps

Überprüfen Sie Ihre „Datums- und Zeitformate“ in der „Region und Sprache“ Bedienfeld.

Auch wenn Sie Datetime wollen ein bestimmtes Format zu erzeugen, rufen Sie nicht einfach nur ToString (), aber es einen Parameter übergeben das Format angibt, die Sie wollen. Und falls Sie das Format des Datums wissen Sie, es zu analysieren, fragen, ruft TryParseExact (), und melden Sie ihm das gewünschte Format bereitstellen.

Siehe auch MSDN Datums- und Uhrzeitstandardformatstrings

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top