Wie stellen Sie global das Datumsformat in ASP.NET?
-
08-07-2019 - |
Frage
Wie stellen Sie global das Datumsformat in ASP.NET?
Mein lokaler Rechner und Server haben Ländereinstellungen auf „Englisch (Neuseeland)“.
Wenn ich ein Date mit dd/MM/yyyy
forma erwarte ich 19/11/2008
für heute zum Beispiel zu sehen.
Bis vor kurzem das ist, was ich in der Tat Suche von sowohl meinem lokalen Rechner und dem Server.
Erst vor kurzem aus unerfindlichen Gründen, unsere lokalen Maschinen haben immer so leicht verändert. Trotz nach wie vor auf „Englisch (Neuseeland)“ gesetzt wird, hat das Datum delimter von /
geändert -
! Die gleiche Änderung nicht auf den Servern aufgetreten, die nach wie vor „Englisch (Neuseeland)“ und die /
für das Datum delimter zeigen.
So jetzt meine lokalen Maschine, für das Format dd/MM/yyyy
ich 19-11-2008
statt 19/11/2008
.
Dies ist ein wenig irritierend.
Der einzige Weg, um es, dass ich so weit sehen kann, ist die Schrägstriche zu entkommen und das Format auf dd\/MM\/yyyy
. Es scheint zu funktionieren, aber es scheint nicht die ideale Lösung.
Kann mir jemand bitte helfen?
Hinweis: Dies ist für eine Intranet-Anwendung und ich über die wahre Globalisierung nicht kümmern. Ich möchte nur das Datumsformat beheben und nicht haben es auf mich ändern.
Lösung
Sie können die aktuelle Thread Kultur in der Datei Global.asax ändern, und überschreiben Sie das Datumsformat zum Beispiel:
using System.Globalization;
using System.Threading;
//...
protected void Application_BeginRequest(Object sender, EventArgs e)
{
CultureInfo newCulture = (CultureInfo) System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
newCulture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";
newCulture.DateTimeFormat.DateSeparator = "-";
Thread.CurrentThread.CurrentCulture = newCulture;
}
Andere Tipps
In web.config gesetzt Tag per die folgende Dokumentation
<system.web>
<globalization culture="en-NZ" uiCulture="en-NZ"/>
</system.web>
Ein guter Weg ist, erscheinen die Web.Config, das Datumsformat konfigurieren in allen Komponenten eines aspx
<system.web>
<globalization uiCulture="en" culture="en-NZ" />
</system.web>
Sie können Ihre Kultur ohne Manipulation eingestellt:
using System.Globalization;
using System.Threading;
//...
protected void Application_BeginRequest(Object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-NZ");
}
Es ist eine alte Post, aber ich dachte, es nützlich sein, könnte es hier zu erwähnen, mein Problem war so etwas wie, was der OP gefragt hat, aber die Lösung war, dass die Kultur in der IIS geändert wurde, nicht vom Bedienfeld.
IIS hat seine eigene Kultur Auswahl ist, die standardmäßig der lokale Computer Kultur folgen. Aber aus irgendeinem Grunde, es wurde zu einer anderen Kultur verändert, und ich begann, diese seltsamen Datumsformate zu bekommen.
Sie können für mehr Antworten hier .
Für Formatstrings, das Format Zeichen / löst nicht tatsächlich auf den wörtlichen „/“, wie man erwarten würde. Stattdessen löst es auf den aktuellen Datum Zeit Separator wie in Ihren regionalen Einstellungen konfigurieren. Versuchen Sie, die DateTimeFormatInfo.DateSeparator Eigenschaft zu ändern.
Weitere Informationen finden Sie unter: http://msdn.microsoft.com /en-us/library/8kb3ddd4.aspx