Benutzerdefinierte DateTime-Formatzeichenfolge funktioniert nicht wie erwartet

7

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.

    
Jesse Webb 11.10.2012, 22:45
quelle

5 Antworten

15

/ ist das Datums-Trennzeichen, das ist kulturabhängig - in Ihrer aktuellen Kultur ist es als - definiert. Wenn du immer ein / verwenden willst:

%Vor%

oder

%Vor%

d. setze die Teile, die ausgegeben werden sollen, "wie sie sind" in Anführungszeichen.

    
MiMo 11.10.2012, 23:01
quelle
12

Versuchen Sie:

%Vor%

Ihre Kultur könnte Ihr Datumstrennzeichen überschreiben.

    
lahsrah 11.10.2012 22:52
quelle
2

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.

    
Vivek Maharajh 11.10.2012 22:57
quelle
1

Versuchen Sie, die invariante Kultur hinzuzufügen, Verwenden der InvariantCulture-Eigenschaft

%Vor%     
nerdybeardo 11.10.2012 23:03
quelle
0
%Vor%     
Cristian Latapiat 26.08.2015 18:41
quelle