Conversione del formato DateTime usando il razor

Cosa c’è di sbagliato in quanto segue?

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

@ item.Date mostra 20/11/2005 12:00 am e voglio visualizzare 20 Nov 2011

Solutions Collecting From Web of "Conversione del formato DateTime usando il razor"

Provare:

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

oppure potresti usare l’attributo [DisplayFormat] sul tuo modello di vista:

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

e secondo te semplicemente:

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

Questa è una soluzione:

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

Prima di ToString () utilizzare Valore .

Prova questo in MVC 4.0

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

L’attributo [DisplayFormat] viene utilizzato solo in EditorFor / DisplayFor e non dalle API HTML non formattate come TextBoxFor. Ho funzionato facendo quanto segue,

Modello:

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

Vista:

  
@Html.LabelFor(m => m.LiquorLicenceDocumentIssueDate) @Html.EditorFor(m => m.LiquorLicenceDocumentIssueDate)
@Html.ValidationMessageFor(m => m.LiquorLicenceDocumentIssueDate)

Produzione: 30/12/2011

Collegamento correlato:

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

Sotto il codice ti aiuterà

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

Per Razor, inserisci il file DateTime.cshtml nella cartella Views / Shared / EditorTemplates. DateTime.cshtml contiene due righe e produce un TextBox con una data formattata l’11 settembre 2001.

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

In generale, il mese scritto è sfuggito come MMM, l’anno a 4 cifre come yyyy, quindi la stringa di formato dovrebbe apparire come “gg MMM aaaa”

 DateTime.ToString("dd MMM yyyy") 

Per tutta la soluzione data, quando provi questo in un browser moderno (come FF), e hai impostato il modello corretto

 // Model [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)] public DateTime Start { get; set; } // View 
@Html.LabelFor(model => model.Start, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control"} })

mvc (5) wil render (il tipo di input è impostato su data in base alle impostazioni della data nel modello!)

 

E il browser mostrerà

inserisci la descrizione dell'immagine qui

Per risolvere questo problema è necessario modificare il testo in testo anziché in data (anche se si desidera utilizzare il calendario personalizzato)

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