Преобразование формата DateTime с использованием бритвы

Что случилось со следующим?

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

@item.Date показывает 20/11/2005 12:00 am.m, и я хочу показать 20 ноября 2011 г.

Ответ 1

Try:

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

или вы можете использовать атрибут [DisplayFormat] в вашей модели просмотра:

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

и, на ваш взгляд, просто:

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

Ответ 2

Это решение:

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

До ToString() используйте Значение.

Ответ 3

Атрибут [DisplayFormat] используется только в EditorFor/DisplayFor, а не в необработанных HTML-API, таких как TextBoxFor. Я получил его работу, выполнив следующие действия:

Модель:

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

Вид:

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

Вывод: 30/12/2011

Ссылки по теме:

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

Ответ 4

Попробуйте это в MVC 4.0

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

Ответ 5

Для Razor поместите файл DateTime.cshtml в папку Views/Shared/EditorTemplates. DateTime.cshtml содержит две строки и создает TextBox с датой, отформатированной 9/11/2001.

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

Ответ 6

В общем, письменный месяц сбрасывается как MMM, 4-значный год как yyyy, поэтому ваша строка формата должна выглядеть как "dd MMM yyyy"

DateTime.ToString("dd MMM yyyy")

Ответ 7

Ниже приведен код

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