Unable to set datetime format in MVC 4 using data annotations

63,823

Solution 1

You missed 2 things here:

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

and you also need:

ApplyFormatInEditMode=true

Try to use this:

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

Solution 2

{0:dd/mm/yyyy} should be {0:dd/MM/yyyy} because mm means minutes, not months:

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

Sender

Passion and Skills will take your startup to the next level. Learning is fun, but teaching is awesome. Code re-usability is my passion, Teaching, and learning is my hobby, Becoming a successful entrepreneur is my goal.

Updated on November 11, 2020

Comments

  • Sender
    Sender over 3 years

    I will try everything but not working this(dd/MM/yyyy) date format, this always gate mm/dd/yyyy

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

    Razor view

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

    Using DateTime Template.

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