DateTime-formaat converteren met scheermes

Wat is er mis met het volgende?

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

@item.Datum wordt weergegeven op 20/11/2005 12:00 uur en ik wil 20 nov 2011 weergeven


Antwoord 1, autoriteit 100%

Probeer:

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

of u kunt de [DisplayFormat]-kenmerk op uw weergavemodel:

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

en volgens jou gewoon:

@Html.DisplayFor(x => x.Date)

Antwoord 2, autoriteit 28%

Dit is de oplossing:

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

Gebruik vóór ToString()Value.


Antwoord 3, autoriteit 12%

Probeer dit in MVC 4.0

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

Antwoord 4, autoriteit 8%

Het kenmerk [DisplayFormat] wordt alleen gebruikt in EditorFor/DisplayFor en niet door de onbewerkte HTML-API’s zoals TextBoxFor. Ik heb het werkend gekregen door het volgende te doen,

Model:

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

Bekijken:

       <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>

Uitvoer:
30/12/2011

Verwante link:

http://msdn.microsoft. com/en-us/library/system.componentmodel.dataannotations.displayformatattribute.applyformatineditmode.aspx


Antwoord 5, autoriteit 4%

De onderstaande code helpt je

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

Antwoord 6, autoriteit 2%

Plaats voor Razor het bestand DateTime.cshtml in de map Views/Shared/EditorTemplates. DateTime.cshtml bevat twee regels en produceert een tekstvak met een datumnotatie op 11 september 2001.

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

Antwoord 7

Over het algemeen krijgt de geschreven maand een escapeteken als MMM, het 4-cijferige jaar als jjjj, dus je opmaaktekenreeks moet er uitzien als “dd MMM yyyy”

DateTime.ToString("dd MMM yyyy")

Antwoord 8

Ik kon dit niet volledig werkend krijgen op basis van de bovenstaande suggesties. Het toevoegen van het DataTypeAttribute [DataType(DataType.Date)]leek mijn probleem op te lossen, zie:

Model

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

Bekijken

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

HTH


Antwoord 9

Voor alle gegeven oplossingen, als je dit in een moderne browser (zoals FF) probeert en je het juiste model hebt ingesteld

// 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) zal renderen (het typevan de invoer is ingesteld op datumop basis van uw datuminstellingen in uw model!)

<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>

En de browser zal tonen

voer hier de afbeeldingsbeschrijving in

Om dit op te lossen, moet je het typewijzigen in tekstin plaats van de datum (ook als je je aangepaste kalender wilt gebruiken)

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

Antwoord 10

Op basis van wat Anjan Kant hierboven zei, kwam ik op dit uit (zou je een upvote hebben gegeven, maar ik ben te nieuw)

@if (Model.Quotes != null)
        {
            foreach (var item in Model.Quotes)
            {
                <tr class="code-black">
                    <td class="td">
                        @Html.Label(@item.CreateDate.ToShortDateString())
                    </td>
                    <td class="td">
                        @Html.DisplayFor(modelItem => item.Status)
                    </td>
                    <td class="td">
                        @Html.DisplayFor(modelItem => item.ProjectName)
                    </td>
                    <td class="td usd">
                        @Html.DisplayFor(modelItem => item.Total)
                    </td>
                    <td class="td">
                        <a asp-page="../Quote/Details" asp-route- 
                                        id="@item.Id">View</a> 
                    </td>
                </tr>
            }
        }

Antwoord 11

Eenvoudige manier om het datumtype te wijzigen, bijvoorbeeld:

  [DataType(DataType.Date)]
   public DateTime? DataEurGbp { get; set; }

Other episodes