wake-up-neo.net

Konvertieren des DateTime-Formats mit einem Rasierer

Was ist los mit dem Folgenden?

@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")

@ item.Date zeigt 20/11/2005 12:00 Uhr und ich möchte den 20. November 2011 anzeigen

84
learning

Versuchen:

@item.Date.ToString("dd MMM yyyy")

oder Sie könnten das Attribut [DisplayFormat] für Ihr Ansichtsmodell verwenden:

[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
public DateTime Date { get; set }

und aus deiner Sicht einfach:

@Html.DisplayFor(x => x.Date)
237
Darin Dimitrov

Dies ist die Lösung:

@item.Published.Value.ToString("dd. MM. yyyy")

Vor ToString () use Value

65
Miroslav Holec

Versuchen Sie dies in MVC 4.0

@Html.TextBoxFor(m => m.YourDate, "{0:dd/MM/yyyy}", new { @class = "datefield form-control", @placeholder = "Enter start date..." })
23
Nick

Das [DisplayFormat] -Attribut wird nur in EditorFor/DisplayFor verwendet und nicht von den rohen HTML-APIs wie TextBoxFor. Ich habe es mit den folgenden Schritten zum Laufen gebracht,

Modell:

[Display(Name = "When was that document issued ?")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? LiquorLicenceDocumentIssueDate { get; set; }

Aussicht:

        <div id="IsLiquorLicenceDocumentOnPremisesYes" class="groupLongLabel">
            @Html.LabelFor(m => m.LiquorLicenceDocumentIssueDate)
            <span class="indicator"></span>
            @Html.EditorFor(m => m.LiquorLicenceDocumentIssueDate)
            <span id="validEmail"></span>
            <br />
            @Html.ValidationMessageFor(m => m.LiquorLicenceDocumentIssueDate)
        </div>

Ausgabe: 30/12/2011 

Zugehöriger Link:

http://msdn.Microsoft.com/de-de/library/system.componentmodel.dataannotations.displayformatattribute.applyformatineditmode.aspx

18
Diganta Kumar

Der folgende Code wird Ihnen helfen

@Html.Label(@item.Date.Value.ToString("dd - M - yy"))
5
Anjan Kant

Legen Sie für Razor die Datei DateTime.cshtml in den Ordner Views/Shared/EditorTemplates. DateTime.cshtml enthält zwei Zeilen und erstellt eine TextBox mit einem Datum, das am 11.09.2001 formatiert wurde. 

@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })
4
Jules Bartow

Ich konnte diese Arbeit nicht vollständig auf Grundlage der obigen Vorschläge erhalten. Mit dem DataTypeAttribute [DataType(DataType.Date)] schien sich mein Problem zu lösen, siehe:

Modell

[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime RptDate { get; set; }

Aussicht

@Html.EditorFor(m => m.CLPosts.RptDate)

HTH

2
Fraze

Im Allgemeinen wird der geschriebene Monat als MMM, die 4-stellige Jahreszahl als JJJJ gekennzeichnet. Die Formatzeichenfolge sollte daher wie "TT MMM JJJJ" aussehen

DateTime.ToString("dd MMM yyyy")
2
flq

Für alle angegebenen Lösungen, wenn Sie dies in einem modernen Browser (wie FF) versuchen und das richtige Modell eingestellt haben

// Model
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime Start { get; set; }

// View
<div class="form-group">
    @Html.LabelFor(model => model.Start, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control"} })
    </div>
</div>

mvc (5) wird gerendert (der type der Eingabe wird basierend auf Ihren Datumseinstellungen in Ihrem Modell auf date gesetzt!)

<div class="col-md-10">
<input class="form-control text-box single-line" data-val="true" data-val-date="The field Start must be a date." data-val-required="The Start field is required." id="Start" name="Start" value="01-05-2018" type="date">
        <span class="field-validation-valid text-danger" data-valmsg-for="Start" data-valmsg-replace="true"></span>
</div>

Und der Browser wird angezeigt

 enter image description here

Um dies zu beheben, müssen Sie type in text anstelle des Datums ändern (auch wenn Sie Ihren benutzerdefinierten Kalender verwenden möchten).

@Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control", @type = "text" } })
0
Bunkerbuster