Ich habe eine benutzerdefinierte DateTime
Formatzeichenfolge: "M/d/yyyy h:m:ss tt"
.
Zum Beispiel, mit dem Datum '18. September 2012 @ Mittag', erwarte ich, dass die Ausgabe so etwas wie "9/18/2012 12:0:00 PM"
ist.
Die Zeit scheint korrekt zu formatieren, aber der Datumsteil wird durcheinander gebracht. Ich sehe die Daten als "MM-dd-yyyy"
formatiert und ich kann nicht herausfinden, warum.
Hier ist ein Beispielcode, um das Problem zu reproduzieren:
%Vor%Hier ist das MSDN-Dokument für benutzerdefinierte DateTime-Formatzeichenfolgen .
Irgendwelche Ideen, was mache ich falsch? Wie kann ich mein gewünschtes Ergebnis erreichen?
Bearbeiten:
Die Sache, die in der letzten Zeile des Beispielcodes falsch ist, ist, dass Bindestriche anstelle von Schrägstrichen vorhanden sind und ich weiß nicht warum.
Außerdem ist die Sprache meines Computers auf Englisch (Kanada) eingestellt. Aber weder mein "kurzes" noch "langes" Datumsformat sieht wie M-d-yyyy
aus, also habe ich keine Ahnung woher das kommt.
Dieser Artikel erläutert, wie die aktuelle Kultur die Ausgabe von DateTime.ToString (string ). Lesen Sie den Abschnitt, der diesen Text enthält:
Diese Methode verwendet Formatierungsinformationen, die von der aktuellen abgeleitet werden Kultur
In diesem Artikel wird erklärt, wie man die Kultur so erhält / setzt dass Sie diese Möglichkeit testen können.
In diesem Artikel wird erläutert, wie Sie DateTime.ToString explizit mit einer zu verwendenden Kultur versehen können.
Versuchen Sie, die invariante Kultur hinzuzufügen, Verwenden der InvariantCulture-Eigenschaft
%Vor%Tags und Links string c# datetime .net-4.0 datetime-format