Format zu Konvertieren.ToDateTime(string) - Methode
Wenn wir ausführen
Convert.ToDateTime('08/01/2014')
wie es konvertieren zu 1-Aug-2014 (ignorieren Sie die format) und nicht für 8-Jan-2014?
Soweit ich sah, gibt es keine Erwähnung von einem beliebigen format für den string-parameter übergeben wird auf diese Methode.
- Was ist Ihre
CurrentCulture
? - bestimmt durch die server-Einstellungen, wenn nicht die Kultur definiert.
- Wenn Sie nicht angeben, eine Kultur Ihre aktuelle Kultur verwendet wird.
- möglich, Duplikat der Convert.ToDateTime , die Art und Weise zu Schildern, Monat und Jahr Feld C#?
- Dies ist kein Duplikat. Diese Frage Fragen, warum
Convert.ToDateTime
wandelt diese Zeichenfolge als1-Aug-2014
nicht8-Jan-2014
. - Ich habe den eingefahrenen Stimmen, aber diese beiden Fragen sind viel zu nah(zumindest in Ihrer aktuellen form) wie für mich. Vielleicht sollte es erstellt werden, einige kanonische Antwort für solche Monats-in-place-des-Tages-Probleme?
- Soner Gonul, ich war auf der Suche nach diesem! CurrentCulture war etwas, was ich noch nicht gehört haben. Vielen Dank 🙂
- Könnten Sie bitte mitteilen, was Ihr
CurrentCulture
genau? - Es gibt keine (und sollte nicht) die kanonische Antwort für diese Art von Fragen, weil es ist völlig abhängig von Kulturen und das Datum Muster Sie haben als standard.
- Meine
CurrentCulture
"en-US"! - Aktualisiert meine Antwort jetzt, werfen Sie einen Blick.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstens, es ist
Convert.ToDateTime("08/01/2014")
nichtConvert.ToDateTime('08/01/2014')
. Strings repräsentiert, die mit doppelten Anführungszeichen, nicht das einfache Anführungszeichen.Convert.ToDateTime(string)
Methode verwendetCurrentCulture
alsIFormatProvider
standardmäßig. Hier ist, wie es ist umgesetzt;Sowie
DateTime.Parse(string, IFormatProvider)
umgesetzt als;Vom Dokumentation;
So, was ist
DateTimeFormatInfo
Thema hier genau? Es ist dieDateTimeFormatInfo
's Informationen mitDateTimeFormatInfo.GetAllDateTimePatterns
Methode.Wahrscheinlich Ihre aktuellen thread-Kultur hat eine
MM/dd/yyyy
nichtdd/MM/yyyy
(oder welches Zeichen IhrDateSeparator
IhrerCurrentCulture
weil"/"
benutzerdefinierte Formatbezeichner hat eine Besondere Bedeutung als mich ersetzen der aktuellen Kultur oder der angegebenen Kultur Datumstrennzeichen) als standard Datum und Zeit format.Sehen Sie alle standard-Formate für Datum und Uhrzeit Ihrer
CurrentCulture
mit;Lassen Sie mich Ihnen ein Beispiel geben; meine aktuellen thread-Kultur ist Türkisch (
tr-TR
). Und es hatdd.MM.yyyy
als standard Datum und Zeit format.Das ist, warum, wenn ich Schreibe
Convert.ToDateTime("02.01.2014")
in meinem code, er parst diesen string als 2. Januar nicht 1. Februar.Genau so, wie ich sagte, Ihr
en-US
hatMM/dd/yyyy
aber nichtdd/MM/yyyy
als standard Datum und Zeit format. Das ist, warum Ihr08/01/2014
string analysiert, mitMM/dd/yyyy
Muster nichtdd/MM/yyyy
.Ergebnis;
Keine Erwähnung?
Verwenden Sie diese.
zB:
en-US
Kultur? o.O ich glaube, du verpasst die Frage vollständig.