Nun, Ich versuche das Standard-Datumsformat einer Kultur zu erhalten.
Zum Beispiel hat en-us "m / dd / yyyy", de-de "d / mm / yyyy". Kultur könnte alles an der Client-Maschine sein. und Dateformat kann auch alles sein. wie für Kultur ist en-us aber dateformat ist dd-MMM-yyyy.
In diesem Fall möchte ich den ShortDateformatString als m / dd / yyyy nicht dd-MMM-yyyy erhalten.
Ich habe versucht, dies für die ganze Kultur zu tun, indem ich Folgendes benutze:
%Vor% aber es gibt immer mt dd-MMM-yyyy
zurück. Ich brauche den Standard, nicht den Satz auf der Maschine.
Ich glaube, das Problem ist die Art und Weise, wie Sie die gewünschte Kultur finden.
Dies sollte Ihnen die Standard-Kultureinstellungen geben:
%Vor%Das Konstruieren von einem mit einem String sollte mit dem Kulturnamen verwendet werden, ich weiß nicht, ob es mit dem IETF-Tag funktionieren sollte, es könnte in diesem Fall gerade die aktuelle Kultur zurückgegeben haben.
Laut MSDN gibt CurrentCulture
die Kultur zurück auf eine der folgenden Weisen:
CultureInfo.DefaultThreadCurrentCulture
zurück, wenn es nicht null ist. (Beachten Sie, dass, wenn Sie keine Kultur festlegen, diese immer Null ist.) GetUserDefaultLocaleName
function zurück. Dadurch wird die von Ihnen in der Systemsteuerung festgelegte Kultur zurückgegeben. Wenn Sie die Kultur in der Systemsteuerung ändern, werden die Änderungen möglicherweise erst nach einem Neustart des Computers angezeigt.
Um zu testen, ob Kulturen die richtigen Daten anzeigen, können Sie manuell eine Kultur auswählen, anstatt die Systemkultur zu verwenden, indem Sie CultureInfo.CreateSpecificCulture("en-US");
verwenden ("en-US" durch die Kulturcodes anderer Länder ersetzen).
Das Folgende scheint für mich zu funktionieren.
%Vor%Ausgabe: M / T / JJJJ TT / MM / JJJJ
Tags und Links c# culture currentculture