title: MVC datetime localization issue
body: <p>In our application we store a culture on the user. For example "en-US".
  Then when we display dates in a view we do like this:</p>
  
  <pre><code>date.ToString("d", user.CultureInfo)
  </code></pre>
  
  <p>which results in that the user sees the date the way he prefers.
  The user of course inputs dates in the same way. For example a US date "12/1/2014" which is December 1st 2014.
  When MVC tries to convert this automatically and the MVC thread runs another culture than the user prefers it was converted wrong at first. This date was by accident converted to January 12th 2014.
  To fix this problem I created a custom DateTime model binder:</p>
  
  <pre><code>public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
  {
      var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
      var date = value.ConvertTo(typeof(DateTime), HttpContext.Current.UserContext().CultureInfo);
      return date;
  }
  </code></pre>
  
  <p>now we convert the dates with help of the users actual culture.
  But this unfortunately causes another problem. In different views we have for example a hidden input like this:</p>
  
  <pre><code>@Html.HiddenFor(m =&gt; m.created)
  </code></pre>
  
  <p>This will be written with the default culture of the MVC thread (1.12.2014). But when the user posts data back then the custom model binder will try to convert the date by the users culture and that conversion goes wrong.
  I could fix this by in the view code like this instead (or format it with the users culture):</p>
  
  <pre><code>@Html.HiddenFor(m =&gt; m.created, new { @Value = Model.created.ToString("yyyy-MM-dd") })
  </code></pre>
  
  <p>because this date format will always be correct it seems.
  But I would like to avoid searching all code trying to find all places I need to change. And it's for sure that I will have bugs left.
  Localization it's very common so it seems that I'm missing something. It should be an easier way to approach the problem.
  If it's not then how could I solve the latter problem I've created? Is there a way to output these dates the same way through some global setting without having to change every line of code that is affected by this?</p>