title: Format datetime in asp.net mvc 4
body: <p>How can I force the format of datetime in asp.net mvc 4 ?
  In display mode it shows as I want but in edit model it doesn't.
  I am using displayfor and editorfor and applyformatineditmode=true with dataformatstring="{0:dd/MM/yyyy}"
  What I have tried:</p>
  
  <ul>
  <li>globalization in web.config (both of them) with my culture and uiculture.</li>
  <li>modifying the culture and uiculture in application_start()</li>
  <li>custom modelbinder for datetime</li>
  </ul>
  
  <p>I have no idea how to force it and I need to input the date as dd/MM/yyyy not the default.</p>
  
  <p>MORE INFO:
  my viewmodel is like this</p>
  
  <pre><code>    [DisplayName("date of birth")]
      [DataType(DataType.Date)]
      [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
      public DateTime? Birth { get; set; }
  </code></pre>
  
  <p>in view I use <code>@Html.DisplayFor(m=&gt;m.Birth)</code> but this works as expected (I see the formatting)
  and to input the date I use <code>@Html.EditorFor(m=&gt;m.Birth)</code> but if I try and input something like 13/12/2000 is fails with the error that it is not a valid date (12/13/2000 and 2000/12/13 are working as expected but I need dd/MM/yyyy).</p>
  
  <p>The custom modelbinder is called in application_start() b/c I don't know where else.</p>
  
  <p>Using <code>&lt;globalization/&gt;</code> I have tried with <code>culture="ro-RO", uiCulture="ro"</code> and other cultures that would give me dd/MM/yyyy.
  I have also tried to set it on a per thread basis in application_start() (there are a lot of examples here, on how to do this)</p>
  
  <hr>
  
  <p>For all that will read this question:
  It seems that Darin Dimitrov's answer will work as long as I don't have client validation.
  Another approach is to use custom validation including client side validation.
  I'm glad I found this out before recreating the entire application.</p>