Глобальное преобразование UTC DateTimes в указанные пользователем локальные DateTimes

Я храню все поля DateTime как время UTC. Когда пользователь запрашивает веб-страницу, я хотел бы выбрать предпочитаемый местный часовой пояс (а не локальный часовой пояс сервера) и автоматически отображать все поля DateTime во всех веб-формах в качестве локальных дат.

Конечно, я мог бы применить преобразование к каждому вызову DateTime.ToString () в каждой форме или реализовать некоторую вспомогательную утилиту, но это трудоемкая задача, а также есть некоторые сторонние компоненты, которые сложно настроить с помощью пользовательских шаблонов отображения DateTime ,

По сути, я хотел бы, чтобы класс DateTime вел себя следующим образом:

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.)

Есть ли способ сделать это?

Кстати, я использую ASP.NET MVC 4, если это имеет значение.

Ответы на вопрос(2)

Ваш ответ на вопрос