2012-08-24 52 views
15

voy a probar de todo pero no funciona esto (/aaaa dd/MM) Formato de fecha, esto siempre puerta dd/mm/aaaaNo se puede establecer el formato de fecha y hora en MVC 4 utilizando anotaciones de datos

[Display(Name = "Release Date")] 
[DataType(DataType.DateTime)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")] 
public Nullable<DateTime> release_date { get; set; } 

Razor vista

@Html.EditorFor(model => model.release_date) 

uso de plantilla DateTime.

@model Nullable<System.DateTime> 
@if (Model.HasValue) 
{ 
    @Html.TextBox("", String.Format("{0:dd/MM/yyyy}", Model.Value)) 
} 
else 
{ 
    @Html.TextBox("", String.Format("{0:dd/MM/yyyy}", DateTime.Now)) 
} 
@{ 
    string name = ViewData.TemplateInfo.HtmlFieldPrefix; 
    string id = name.Replace(".", "_"); 
} 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#@id").datepicker({ 
       dateFormat: "dd/mm/yy", 
       showStatus: true, 
       showWeeks: true, 
       highlightWeek: true, 
       numberOfMonths: 1, 
       showAnim: "scale", 
       showOptions: { 
        origin: ["top", "left"] 
       } 
      }); 
    }); 
</script> 
+2

De la imagen se ve como el la fecha es 'dd/mm/aaaa' – Habib

+3

Tenga en cuenta que" mm "son los minutos, aparte de cualquier otra cosa, por lo que probablemente quiera decir" dd/MM/aaaa ". –

+0

sí esto es (24/08/2012) dd/MM/aaaa – Sender

Respuesta

22

se ha perdido 2 cosas aquí:

DataFormatString="{0:dd/MM/yyyy}"; //It is dd/MM/yyyy instead of dd/mm/yyyy 

y también se necesita:

ApplyFormatInEditMode=true 

Intente utilizar esto:

[Display(Name = "Release Date")] 
[DataType(DataType.Date), DisplayFormat(DataFormatString="{0:dd/MM/yyyy}", ApplyFormatInEditMode=true)] 
public Nullable<DateTime> release_date { get; set; } 
+1

DataType (DataType.Date) que está funcionando – Sender

+0

¿Qué quiere decir DataType (DataType.Date) está funcionando? Cuando intento esto, obtengo un calendario para elegir una fecha, pero cuando voy al siguiente campo del formulario, la fecha todavía se muestra como mm/dd/aaaa. – comecme

+0

Necesito usar el punto "." como separador [DataType (DataType.Date), DisplayFormat (DataFormatString = "{0: dd.MM.yyyy}", ApplyFormatInEditMode = true)] ¿No funciona? ¿Que puedo hacer? –

5

{0:dd/mm/yyyy} debe ser {0:dd/MM/yyyy} porque mm significa minutos, no meses:

[Display(Name = "Release Date")] 
[DataType(DataType.DateTime)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")] 
public Nullable<DateTime> release_date { get; set; } 
0

Si utiliza la anotación de datos. cuando lo muestre bien pero cuando se edita el modo todavía usa el formato de servidor (configuración cultural) DisplayFormat: como su nombre, solo para la pantalla

Hay algunas opciones para resolver. - Pegar para servidor como cadena con su formato favorito - escribir bindding cliente - Ajuste de la globalización en el web.config para Formato: dd/mm/yyy i mediante el establecimiento de abajo

<system.web> 
    <globalization culture="en-GB"/> 
.... 
Cuestiones relacionadas