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.

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top