title: Globally convert UTC DateTimes to user specified local DateTimes
body: <p>I am storing all the DateTime fields as UTC time. When a user requests a web page, I would like to take his preferred local timezone (and not the local timezone of the server machine) and automatically display all the DateTime fields in all the web forms as local dates.</p>
  
  <p>Of course, I could apply the conversion on every DateTime.ToString() call in every form or implement some helper utility but it is a time consuming task, and also there are some 3rd party components which are tricky to configure with custom DateTime display templates.</p>
  
  <p>Essentially, I would like to make the DateTime class to behave as follows: </p>
  
  <pre><code>from this moment on for this web request, 
  whenever some code calls DateTime.ToString(), convert it to the local time 
          using the timezone offset given at the very beginning of the web request, 
  but if possible, please keep .NET core library DateTime.ToString() calls intact 
         (I don't want to mess up event logging timestamps etc.)
  </code></pre>
  
  <p>Is there any way to do it?</p>
  
  <p>BTW, I am using ASP.NET MVC 4, if it matters.</p>