Warum DisplayFormat mit DataFormatString änderungen "/" (slash) auf "-" (Bindestrich)?
Ich bin mit dem folgenden code
//Model
[DisplayFormat(
ApplyFormatInEditMode = true,
DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime StartDate { get; set; }
//View
@Html.EditorFor(model => model.StartDate)
formatieren der StartDate
aber das Ergebnis ist xx-xx-xxxx
statt xx/xx/xxxx
. Wie kann ich dies lösen, und verwenden Sie immer die xx/xx/xxxx
format?
UPDATE:
Die änderung der Kultur zu en-US
scheint zu funktionieren:
var culture = new CultureInfo(userCulture);
System.Threading.Thread.CurrentThread.CurrentCulture = "en-US";
System.Threading.Thread.CurrentThread.CurrentUICulture = "en-US";
aber das ist keine Lösungweil ich kann mit einer anderen Kultur und ich wollen noch zeigen, das Datum in einer anderen Weise.
Wenn die aktuelle Kultur erzählt, dass das Datum angezeigt werden soll dd-MM-yyyy
dann mit DisplayFormat
wie oben hat keine Auswirkungen, und die Termine werden nicht angezeigt, wie dd/MM/yyyy
.
InformationsquelleAutor der Frage Dryadwoods | 2011-12-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
DataFormatString = @"{0:dd\/MM\/yyyy}"
statt. Da die/
identifiziert ein Zeichen, das ersetzt werden soll, durch die Standard-Datums-Trennzeichen für die aktuelle Kultur, die Sie brauchen, um es zu entkommen, um für es zu sein verwendet als literal in das format.Diese Weise haben Sie ein festes format haben, anstatt eine, die dynamisch verwendet das Datumstrennzeichen der aktuellen Kultur.
Einer alternative zu entkommen die
/
Zeichen können sein:DataFormatString = "{0:dd'/'MM'/'yyyy}"
InformationsquelleAutor der Antwort João Angelo
Ändern Sie das Kurze Datumsformat des server' Regionale Einstellungen für die Verwendung von Schrägstrichen, z.B.
yyyy/MM/dd
.Dies löste das Problem für mich.
InformationsquelleAutor der Antwort user1862175
Können Sie es ändern, um
DataFormatString = "{0:d}"
Danach sollten Sie das kurze Datum Muster mm/TT/Jahr
InformationsquelleAutor der Antwort Ryand.Johnson