[asp.net-mvc-3] Razor를 사용하여 DateTime 형식 변환

다음의 문제는 무엇입니까?

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

@ item.Date는 2005 년 11 월 20 일 오전 12시를 표시하고 2011 년 11 월 20 일을 표시하고 싶습니다.



답변

시험:

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

또는 [DisplayFormat]뷰 모델 에서 속성을 사용할 수 있습니다 .

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

그리고 당신의 관점에서 간단히 :

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


답변

이것이 해결책입니다.

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

ToString () 전에 Value를 사용하십시오 .


답변

MVC 4.0에서 시도해보십시오.

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


답변

[DisplayFormat] 속성은 TextBoxFor와 같은 원시 HTML API가 아닌 EditorFor / DisplayFor에서만 사용됩니다. 다음을 수행하여 작동하게했습니다.

모델:

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

출력 : 2011 년 12 월 30 일

관련 링크 :

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


답변

아래 코드가 도움이 될 것입니다.

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


답변

Razor의 경우 파일 DateTime.cshtml을 Views / Shared / EditorTemplates 폴더에 넣습니다. DateTime.cshtml은 두 줄을 포함하고 날짜 형식이 2001 년 9 월 11 일인 TextBox를 생성합니다.

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


답변

일반적으로 기록 된 월은 MMM으로, 4 자리 연도는 yyyy로 이스케이프되므로 형식 문자열은 “dd MMM yyyy”와 같아야합니다.

DateTime.ToString("dd MMM yyyy")