it-swarm.com.de

Wie legen Sie das Datumsformat in ASP.NET global fest?

Wie legen Sie das Datumsformat in ASP.NET global fest?

Auf meinem lokalen Computer und meinen Servern sind die Ländereinstellungen auf "Englisch (Neuseeland)" eingestellt.

Wenn ich ein Datum mit dd/MM/yyyy Formatiere, erwarte ich beispielsweise für heute 19/11/2008.

Bis vor kurzem habe ich das tatsächlich von meinem lokalen Computer und den Servern erhalten.

Erst kürzlich haben sich unsere lokalen Maschinen aus mysteriösen Gründen geringfügig verändert. Obwohl immer noch "English (New Zealand)" eingestellt ist, wurde der Datumsbegrenzer von / In - Geändert! Die gleiche Änderung ist nicht auf den Servern aufgetreten, auf denen noch "Englisch (Neuseeland)" und der / Für den Datumsbegrenzer angezeigt werden.

Für meinen lokalen Rechner erhalte ich für das Format dd/MM/yyyy19-11-2008 Anstelle von 19/11/2008.

Das ist ein wenig beunruhigend.

Der einzige Weg, den ich bisher sehen kann, besteht darin, die Schrägstriche zu umgehen und das Format auf dd\/MM\/yyyy Zu setzen. Es scheint zu funktionieren, aber es scheint nicht die ideale Lösung zu sein.

Kann jemand bitte helfen?

HINWEIS: Dies ist eine Intranetanwendung, und die echte Globalisierung interessiert mich nicht. Ich möchte nur das Datumsformat korrigieren und es nicht an mir ändern lassen.

54
BlackMael

Sie können die aktuelle Thread-Kultur in Ihrer Datei "Global.asax" ändern und das Datumsformat überschreiben. 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;
}
106
CMS

Setzen Sie in der Datei web.config das Tag gemäß der folgenden Dokumentation

<system.web>
    <globalization  culture="en-NZ"  uiCulture="en-NZ"/>
</system.web>
45
Serapth

Ein guter Weg ist die Konfiguration der Web.Config, das Datumsformat erscheint in allen Komponenten einer ASPX

<system.web>    
<globalization uiCulture="en" culture="en-NZ" />
</system.web>
7
cmujica

Sie können Ihre Kultur ohne Manipulation festlegen:


using System.Globalization;
using System.Threading;


//... protected void Application_BeginRequest(Object sender, EventArgs e) {
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-NZ"); }
4
labilbe

Es ist ein alter Beitrag, aber ich dachte, es könnte nützlich sein, ihn hier zu erwähnen. Mein Problem war so etwas wie das, worum das OP gebeten hat, aber die Lösung war, dass die Kultur im IIS geändert wurde, nicht über die Systemsteuerung.

IIS verfügt über eine eigene Kulturauswahl, die standardmäßig der lokalen Computerkultur folgt. Aber aus irgendeinem Grund wurde es zu einer anderen Kultur und ich fing an, diese seltsamen Datumsformate zu bekommen.

Sie können nach weiteren Antworten suchen hier .

1
Ghasan

Bei Formatzeichenfolgen wird das Formatzeichen/nicht wie erwartet in das Literal "/" aufgelöst. Stattdessen wird das in Ihren regionalen Einstellungen konfigurierte Trennzeichen für die aktuelle Datums- und Uhrzeitangabe verwendet. Versuchen Sie, die DateTimeFormatInfo.DateSeparator-Eigenschaft zu ändern.

Weitere Informationen finden Sie unter: http://msdn.Microsoft.com/en-us/library/8kb3ddd4.aspx

0
jkchong